- From: Jon Bosak <bosak@atlantic-83.Eng.Sun.COM>
- Date: Fri, 16 May 1997 13:50:23 -0700
- To: w3c-sgml-wg@w3.org
From: Jean Paoli <jeanpa@microsoft.com> To: "'w3c-sgml-wg@w3.org'" <w3c-sgml-wg@w3.org> Subject: SD2 - Structured Attributes Date: Thu, 15 May 1997 21:14:16 -0700 SD2 - Structured Attributes: ---------------------------------------- XML uses containment to hold data between tags. This data can be internally subdivided, for example the author can be marked to indicate internal parts, as in <AUTHOR><LAST>Dantzig</LAST>, <FIRST>Tobias</FIRST></AUTHOR>. These divisions don't change the contents of AUTHOR, them merely identify constituent parts. Contrast this with adding a digital signature, as in the following: <AUTHOR XML-DSIG="ABCDE">Dantzig, Tobias</AUTHOR>. Here, the signature is an attribute of the author element, that is, supplementary information, but not actual contents: Adding a signature does not change who the author is. The distinction between contents and attributes is important when tools (particularly down-level versions of products) need to process data without fully understanding its meaning: unknown attributes are completely ignored, while the contents of unknown elements are retained. In both cases above, an uninformed tool could retrieve the value of AUTHOR as "Dantzig, Tobias". However, XML attributes inside the tag cannot have structure, nor can they themselves have attributes, nor can they be easily extended. Consequently, for example, a digital signature cannot have any structure (except by private conventions and private syntax) nor can attributes be digitally signed. The current attribute syntax is insufficient. Proposal: I'm going to say something radical here: We should invent a way to add structure and attributes to attributes. A special character sequence "<*" in an opening tag (the exact characters used are to-be-determined) signals that the contents are an attribute, not a subdivision. <ORDERS> <LINEITEM XML-ID="L1" > <NAME>Number, the Language of Science</NAME> <AUTHOR><First>Dantzig</>, <Last>Tobias</> <*XML-DSIG><DIGEST>5432109876</><SIGNER>AdamB@microsoft.com</></XML-DSIG > </AUTHOR> <PRICE>5.95</PRICE> <AVAILABILITY>Out of Stock</AVAILABILITY> <*XML-DSIG><DIGEST>1234567890</DIGEST><SIGNER>AndrewL@microsoft.com</></ XML-DSIG> </LINEITEM ></ORDERS> In this example, the AUTHOR element has a digital signature attribute, as well as subelements for First and Last parts of the name. Similarly, LINEITEM has a digital signature. Finally, the digital signatures themselves have subelements, one of which has a attribute, XML-TYPE. An attribute that identifies an element should be expressed within the element's tag. (That is, the XML-ID attribute.) All other attributes can be expressed in either form, so there is a smooth upgrade path as structural needs show up. The grove will reflect both syntactical representations the same way. -----------------------------
Received on Friday, 16 May 1997 16:50:55 UTC