[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: XML 1.0 - Element order significance
- From: Mike Brown <mbrown@corp.webb.net>
- To: "'xml-dev@lists.xml.org'" <xml-dev@lists.xml.org>
- Date: Mon, 22 Jan 2001 17:05:09 -0700
Jonathan Borden wrote:
> Actually in an XML document, sibling elements are *guaranteed*
> to be ordered. An XML document is a character stream, and one
> sibling follows the other.
I think I agree with your conclusion, but I disagree with the premise that
order (in general) is determined solely by the linearity of XML's syntax. By
this logic, attributes are also ordered, just because attribute
specification markup is ordered.
While the markup and logical structures may be equivalent (just at different
levels of abstraction), attributes are a good example of unordered logical
structures having order imposed upon them by the linear syntax of XML. It is
up to the XML spec to say whether or not this lexical order is significant.
And indeed, Section 3.1 says "Note that the order of attribute
specifications [...] is not significant." So, the markup has order, but the
logical structures do not, in this case.
There is no definitive statement like this for element tags. Sections 3.2.1
and 3.2.2 do allow for the possibility of elements to be constrained to a
certain order in certain situations, so it is implicit that logical elements
are *probably* ordered, but it could just as easily be argued that in the
absence of an element content declaration, there is no reason to assume that
they *must* be considered as being ordered.
So I believe that it is up to SAX, DOM, the Infoset, XPath, and applications
to say whether their respective models consider elements to be ordered. (SAX
doesn't really count, though, since it is essentially reporting what is
implied by the markup as it serially reads the document).
- Mike
____________________________________________________________________
Mike J. Brown, software engineer at My XML/XSL resources:
webb.net in Denver, Colorado, USA http://skew.org/xml/