When is an attribute an attribute?

Date: Thu, 09 Apr 1998 18:13:56 -0700
From: Tim Bray <tbray@textuality.com>
Subject: RE: When is an attribute an attribute?
Sender: owner-xml-dev@ic.ac.uk
X-Sender: tbray@pop.intergate.bc.ca
To: xml-dev@ic.ac.uk

At 10:35 AM 07/04/98 -0700, Rich Koehler wrote:

>I've become fond of the method that Tim Bray used to distinguish between
>elements and attributes in his discussion of MCF
>(http://www.textuality.com/mcf/MCF-tutorial.html). He writes, "...when
>the property has a simple value like a string, we put that in the
>content of the element; when the property's value is another object, we
>put a pointer to it in an attribute value

Hmm, recommendations do come back to haunt one. I guess I'd sign up for part of that statement - putting URIs in attribute values rather than element content seems to be a basic part of Web culture, and has come to feel natural.

But I'm on the record as saying I've never heard a convincing universal decision procedure for what should be an element and what an attribute. There are some things where it's easy - if you need further internal structure, use an element, for example. But my beliefs on this are:

  1. I have observed that humans doing document design are comfortable with having two ways of labeling content, and assign things to elements or attributes for reasons that seem good to them.

  2. It is often the case, after designers have done this, that they change their minds. I know I do.

  3. For all of these reasons, if software needs to extract information from XML documents, it should be prepared to extract it either from character data or from attribute values, and not struggle against what the designer decided.

-Tim


xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/


Date:     Fri, 19 Mar 1999 11:55:47 -0800
From:     Tim Bray <tbray@textuality.com>
To:       Kurt Donath <kurt.donath@lmco.com>, xml-dev@ic.ac.uk
Subject:  Re: DTD Question: Attributes vs Elements

At 02:33 PM 3/19/99 -0500, Kurt Donath wrote:
>
> What is the criteria for selecting when to define data as an attribute
> or element in a DTD?

Personal taste.  This is a religious issue.  Attributes differ in
that
- they get white-space-normalized
- their order is not significant
- you can't have more than 1 with the same name on an element
- they can't contain any internal structure

If these things matter, your decision is made.  If not, make it yourself.
Lesson: software writers have to be able/willing to pull information
out of either elements or attributes. -Tim

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN
981-02-3594-1