Cover Pages Logo SEARCH
Advanced Search
ABOUT
Site Map
CP RSS Channel
Contact Us
Sponsoring CP
About Our Sponsors

NEWS
Cover Stories
Articles & Papers
Press Releases

CORE STANDARDS
XML
SGML
Schemas
XSL/XSLT/XPath
XLink
XML Query
CSS
SVG

TECHNOLOGY REPORTS
XML Applications
General Apps
Government Apps
Academic Apps

EVENTS
LIBRARY
Introductions
FAQs
Bibliography
Technology and Society
Semantics
Tech Topics
Software
Related Standards
Historic

Structured attributes


Date:       02 Mar 2000 22:40:58 +0000
From:       "Henry S. Thompson" <ht@cogsci.ed.ac.uk>
To:         XML Developers' list <xml-dev@xml.org>
Subject:    Structured attributes

[A moment's thought will lead to realisation that this is displacement activity on the part of the XML Schema: Structures editor, who certainly has better things to do, but I need to get this off my chest.]

Why not structured attributes in XML? Why structured attributes? Well, we all know the comparison between elements and attributes as they stand:


Elements      Attributes
ordered       unordered
non-unique    unique
structured    unstructured

There are a lot of contexts in which the first two properties of
attributes are desireable, but the third is a serious constraint.

Here's a design sketch for adding structured attributes:

  1) Reserve a family of hitherto unusable names as the names of
  structured attributes: On balnace I favour names with an initial
  full-stop (.), but there are arguments in favour of using an initial
  colon (:) instead;

  2) Use element syntax, at the beginning of all element content, with 
     the following restrictions:
     2a) No attributes on structured attributes;
     2b) Contents is either all structured attributes or all text;
     2c) Order doesn't matter;
     2d) Uniqueness of names among sibling structured _and_, for children of
         elements, vanilla old-style attributes.

Example:

  <person age='49'>
   <.name>
    <.first>Henry</.first>
    <.last>Thompson</.last>
    <.middle>Swift</.middle>
  </.name>
  <children otherParent='p33'>
   . . .
  </children>
 </person>

The constraints above are equivalent to allowing 'attribute' children
to the 'attribute' element in XML Schema, along with making the
attribute name uniqueness constraint cumulative:

 <element name='person'>
  <complexType>
   <attribute name='age' type='integer'/>
   <attribute name='name'>
     <attribute name='first'/>
     <attribute name='middle/>
     <attribute name='last/>
   </attribute>
   <element name='children'>...</children>
  </complexType>
 </element>

Back to my day job :-)

ht

  Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
          W3C Fellow 1999--2001, part-time member of W3C Team
     2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
	    Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk
		     URL: http://www.ltg.ed.ac.uk/~ht/

This is xml-dev, the mailing list for XML developers.
List archives are available at http://xml.org/archives/xml-dev/

Prepared by Robin Cover for the The XML Cover Pages archive.


Globe Image

Document URL: http://xml.coverpages.org/thompsonStructuredAttributes200002.html