[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: attributes vs. elements
> -----Original Message----- > From: mgushee@h... [mailto:mgushee@h...] > Sent: Tuesday, September 10, 2002 19:52 > To: xml-dev@l... > Subject: Re: attributes vs. elements > > > On Tue, Sep 10, 2002 at 01:21:37PM -0400, Maciejewski, Thomas wrote: > > This is sort of a newbie question but one that I never > fully understood or > > maybe just don't know how to explain it to others. > > > > When should one use an element and when should one use an attribute? > > That's a very common and very important question, and it's probably in > a FAQ somewhere, but I have no idea which FAQ. In any case, > there is no > hard and fast answer to that question. > > The traditional distinction between elements and attributes > is that the > former are for content (information of interest to the end user or the > consuming application) and the latter for metadata (information about > information), and there is no clearcut, universal distinction between > those two. Generally speaking, the text in a paragraph or the > data in a > database record would be considered content; the date that content was > last modified will probably be metadata, but it's not hard to imagine > scenarios where you might want to treat it as content. Ultimately, > deciding whether something is content or metadata is up to > the creators > and users of the information. > > But back to elements and attributes. Some considerations that > may affect > your choice: > > * Elements may not have more than one attribute with the same name, > but child element names can be repeated indefinitely (unless > forbidden by a schema, of course). > > * XML parsers must preserve the order of elements, but not > attributes. > > [ given the above two statements, we can say that in programming > terms, the attributes of any given element are analogous to a > hash (AKA mapping, dictionary, etc.), while the child elements > are analogous to an array ] > > * Attributes can't contain elements--though of course they can > reference them. > > * White space in elements can be preserved, whereas white space in > attributes is normalized (leading and trailing spaces are > stripped, > each extent of internal white space is collapsed to a single space > character). Matt, I don't follow you. If the schema is specified in XML Schema and the datatype of an attribute is "string" (whose "whitespace" facet is "preserve" by default), I don't believe white space is normalized. Are you saying that an attribute of type "string" behaves differently from an element of type "string" as to white space handling? Alessandro Triglia > > * Attributes are more compact, since their names only occur once per > instance and they have fewer 'overhead' characters: ="" > vs. <> </>. > > * Many people find elements more readable. > > I think there is a tendency for document-oriented > applications to prefer > elements, and messaging and automated data-exchange applications to > prefer attributes--the rationale being that bandwidth is more > important > and human-readability less so. However, in cases where > human-readability > is unimportant, you might want to ask whether XML is an appropriate > solution at all. > > That's my $.02. > > -- > Matt Gushee > Englewood, Colorado, USA > mgushee@h... > http://www.havenrock.com/ > > ----------------------------------------------------------------- > The xml-dev list is sponsored by XML.org <http://www.xml.org>, an > initiative of OASIS <http://www.oasis-open.org> > > The list archives are at http://lists.xml.org/archives/xml-dev/ > > To subscribe or unsubscribe from this list use the subscription > manager: <http://lists.xml.org/ob/adm.pl> > >
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|