Re: When is an attribute an attribute?

len bullard (cbullard@hiwaay.net)
Mon, 06 Apr 1998 19:35:04 -0500


Roy Tennant wrote:
>
> I've been trying to figure this out for a while with no success. It seems
> to me that there are several quite different ways one can encode
> information in XML. Are all of the following correct?

Yes.

> When and why would
> you choose one over another? Does it matter? Thank you for your indulgence
> as I puzzle out what must surely be readily apparent to most of you.

Ok, a DTD really helps this sort of discussion along, but
FWIW:

> Example 1:
> ---------
>
> <BOOK TITLE="The Call of the Wild" AUTHOR="London, Jack"\>

Use empty elements and attributes for tag bags, basically,
if the datum has no frequency and order requirements (only
occurs once somewhere in the attribute list).

NOTE: I haven't looked to see if XML dropped the
SGML restriction on repeated values in attlist
decls.


> Example 2:
> ---------
>
> <BOOK AUTHOR="London, Jack">The Call of the Wild</BOOK>

Use this if you don't care that the string inside the
tags is only differentiated by the BOOK, that is,
semantically, there is no difference between this
and

<BOOK AUTHOR="London, Jack">Love that Wolf!!</BOOK>

or IOW, your application has to know that is a title.


> Example 3:
> ---------
>
> <BOOK>
> <TITLE>The Call of the Wild</TITLE>
> <AUTHOR>London, Jack</AUTHOR>
> </BOOK>

Use this when it is important to know there
is a title and author (i.e, this BOOK
HAS-A TITLE, HAS-A AUTHOR; the
string, The CALL of the WILD IS-A TITLE).
Given the element type declaration, you can tell which order
they should come in, are there multiple
authors, are there alternate titles, etc.
The semantic is application dependent. For
a linking semantic, you might be counting
nodes inside the BOOK. For rendering,
you might be assigning the font value
based on the context of the book element.

len