RE: [xsl] Identity Transform

Subject: RE: [xsl] Identity Transform
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 7 Nov 2005 20:41:31 -0000
> Thank you very much for the quick and thorough answers, the essence of
> them being for my understanding:
> 
> 1. Node sets are ordered.

No. Node sets in XPath 1.0 are unordered collections. But XSLT 1.0 always
processes the nodes in a node-set in document order, unless you specify a
different order using xsl:sort.

People sometimes have difficulty with this concept. Integers are ordered,
but there is only one set containing the three integers (1,2,3). I can
choose to process this set of integers is ascending numeric order, but that
doesn't mean the set is ordered. If sets could be ordered, then there would
be another different set (3,2,1). The ordering is a property of integers in
general, not of a specific collection of integers. Translate "integers" to
"nodes", and the same is true of XPath 1.0 node-sets.


> 2. The order is defined: 
> <http://www.w3.org/TR/xpath#dt-document-order>
> 3. Because of the specific definition of/in (2), the 
> "attributes-before-
> children" requirement is met in my original post's second identity
> transform example.
> 4. Seeing clearly again. :-)
> 
> Regards, Christian.

Current Thread