Embedding Content as Element Content or As An Attribute Value

Jonathan Robie jonathan at texcel.no
Thu Jan 8 20:30:06 GMT 1998

At 09:17 AM 9/30/97 -0400, Tyler Baker wrote:
>I would think that in these cases an "author" tag should embed its
>content as follows <author>Mr John Smith</author>, rather than how
>Microsoft CDF embeds its content which is <author VALUE="Mr John Smith"

I can't speak for Microsoft, but my guess is that they are simply using XML
in the manner most analogous to objects in object oriented systems. In an
object, the attributes are the data values:

class Author 
	String name;	// e.g. "Mr John Smith"

Here they have used the name VALUE in a similar way:

class Author 
	String VALUE;  // e.g. "Mr John Smith"

One very easy way to change objects into XML elements is to use one element
for each object, and use attributes to model the data members:

<author VALUE="Mr John Smith"

The reason attributes are better for this is that an object may have many
data members, and these are distinguished by names. The element content
only has one place to put things, and there is no name associated with it.

>Is this simply just a design preference, or else is there a concrete
>reason why what seemingly is content should be embedded as an attribute.

To me, Microsoft's method makes sense if what you are doing is converting
objects to XML, but your preferred method ("<author>Mr John
Smith</author>") makes more sense if you are converting objects to XML and

jonathan at texcel.no
Texcel Research

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)

More information about the Xml-dev mailing list