Subject: Re[2]: [xsl] Can sets have order? From: Steven.C.Kienle@xxxxxxxxxx Date: Thu, 25 Jan 2001 14:03:09 -0500 |
OK, my turn to jump in. My understanding of XPath is that once you have performed the following: <xsl:variable name="x" select="attribute::*"/> Then the node returned by $x[1] will always be the same. Similarly, the node returned by $x[last()] will always be the same. Therefore node-sets DO HAVE ORDER. Once created, all node sets have an intrinsic ordering, as defined by the [] operand. The fact that node-sets are ordered, via the [] operand, is very important for nearly all XSLT algorithms. What the XSLT recommendation does not do, however, is clearly define what the document, or _external_, related ordering is. When a mathematician says a set is unordered, he really means that there is _no way_ to determine if one set element comes before another. In XSLT, at least in theory, it is possible by walking through the node set until one or the other is found. The first one found is before the one not found. Alright, I'll get of my mathematical soapbox. Steve ______________________________ Reply Separator _________________________________ Subject: Re: [xsl] Can sets have order? Author: David Carlisle <davidc@xxxxxxxxx> at Internet-America Date: 25-01-2001 5:47 PM Just noticed you said: > > It just constructs the set of ancestors. > In a particular order, right? Do you claim that it can return a node set in > any order besides reverse document order? YES!!! If you want to claim that it returns a node set that is ordered, it is ordered in document order. <xsl:variable name="x" select="attribute::*"/> OK so $x is a node set. If it is ordered, then presumably <xsl:copy-of select="$x[1]"/> is it's first element, no? well it gets the outer most element, the relevant order being document order not reverse document order. If $x was an odered set ordered by reverse document order, then <xsl:copy-of select="$x[1]"/> would be the same as <xsl:copy-of select="ancestor::*[1]"/> and select the parent. It is in explaining why <xsl:copy-of select="$x[1]"/> isn't the same as <xsl:copy-of select="ancestor::*[1]"/> that it is helpful to stress that the node set $x is just a set, that it doesn't "remember" that it was constructed in reverse order. In other words the ordering isn't a property of the set $x. David XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Can sets have order?, Oliver Becker | Thread | RE: [xsl] Can sets have order?, DPawson |
RE: [xsl] xsl to echo input xml, Kearney, Bryan | Date | Re: [xsl] xsl to echo input xml, David Carlisle |
Month |