[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re[2]: Can sets have order?

Subject: Re[2]: Can sets have order?
From: Steven.C.Kienle@xxxxxxxxxx
Date: Thu, 25 Jan 2001 14:03:09 -0500
Re[2]:  Can sets have order?
  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:  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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.