Attributes for data interchange can also be useful for metadata
information: type, valid, readonly/readwrite, mandatory/optional,
format, timestamp, owner,...
Conciseness of attributes is also a good point with a caveat for
multiple values to be separated by a space character, for example.
XSLT is, in fact, using a lot of attributes and sub-elements when
attribute notation is not convenient.
As in my Balisage paper
(http://www.balisage.net/Proceedings/vol10/html/Couthures01/BalisageVol10-Couthures01.html),
I still consider that attributes benefit from a shortcut in
serialization but that a notation such as
<element><attribute::format>value</attribute::format></element> should
also be accepted for <element format="value"/> because attributes for
attributes can even become useful ;-)
The parent/descendant axis is not always enough and XML would be just a
tree notation if there were no attributes. It is restrictive to start
from a serialization then wonder what can be done with it. My DOM
implementation is allowing a text node containing an XQuery/XPath
expression to have the corresponding XQueryX tree as a child.
JSON doesn't support attributes but has integrated types and arrays.
Nevertheless the need for metadata is obvious when looking at JSON
schema designs.
Alain Couthures
agenceXML
Le 21/12/2013 22:11, Michael Kay a écrit :
> Attributes betray the origins of XML as a document markup language. The text nodes contain the content, the attributes contain the information used for formatting the text.
>
> For a language designed for data interchange, the attribute/element split would be nonsense. But for a document markup language, it makes eminent sense.
>
> Michael Kay
> Saxonica
>
>
> On 21 Dec 2013, at 20:39, Costello, Roger L. <> wrote:
>
>> Hi Folks,
>>
>> Why did the founding fathers of XML create attributes?
>>
>> XML attributes are weird.
>>
>> They make XML documents dirty, messy, cluttered, and, well, ugly.
>>
>> XML elements are a perfectly satisfying way of defining name-value pairs. XML attributes is a special (i.e., extra, extraneous, redundant) way of including name-value pairs in the XML. That's awful.
>>
>> Unless ....... the creators of XML intended attributes for another purpose.
>>
>> I am reading a wonderful book on parsing and it talks about extending grammars with attributes; those attributes are used to specify the grammar's semantics.
>>
>> Hey, XML is a grammar: that's what XSD and RNG are all about, they define grammars.
>>
>> So maybe what the founding fathers of XML really had in mind with attributes is that they be used to enrich XML grammars with semantic information?
>>
>> Are any of the original founding fathers of XML out there? What were you thinking when you put attributes into XML? Perhaps you were thinking of attribute grammars?
>>
>> /Roger
>>