I agree somewhat. But we must find a way to preserve the best features of
attributes before we phase them out. Attributes are random access,
uniquely named, order independent and convenient to type. Can elements be
tricked into having all of those features in the general case? I think so,
and hope to present a proposal for that in the next few weeks.
>...
> You always have the option of adding a structure where a scalar
> used to be when you go that way. With attributes, you're at the end of the
> road, no way to have structure, so I agree with John Cowan entirely, you
> never know what's coming down the road, so it's better to leave some room
> on either side. Dave
But the issue of upgradability and migration is much more subtle than
that. If merely avoiding attributes made document types easy to upgrade,
then nobody would use them. But in some cases, attributes make migration
much, much easier. Let's say you have software that expects this form:
<!ELEMENT DOC (HEAD, BODY)>
and you extend it with:
<!ELEMENT DOC (COPYRIGHT, HEAD, BODY )>
what should the software do with the copyright? That's hard to know in
general. Sometimes the new sequence member should be discarded. Sometimes
it should be recursively processed to find elements that we know how to
handle (e.g. a paragraph).
But if I add copyright as an *attribute* it's pretty easy to know what to
do with it. Almost all software knows to discard attributes that it
doesn't understand. Attributes present a "named data field" view of the
world that coincides with how we think of objects and properties. Elemetns
can be taught how to present that same view but they don't do it in
XML-as-we-know-it.
Paul Prescod - http://itrc.uwaterloo.ca/~papresco
Marge: "It's almost as if Snake is killing from beyond the grave."
Lisa: "I told you that capital punishment isn't a deterrent."
- Simpson's halloween special