Subject: Re: [xsl] General rule for designing XPath expressions to return items in document order? From: David Carlisle <davidc@xxxxxxxxx> Date: Thu, 09 Jan 2014 10:48:52 +0000 |
Hi Folks,
In yesterday's discussions we concluded that XPath expressions always return values in document order. However, I have a counter-example (from section 19.1 of the XSLT 3.0 specification).
Consider this XML:
<Document> <head> <head>B</head> A </head> </Document>
Clearly "A" comes after "B" in the document. But this XPath:
//head
results in outputting the latter value ("A") first and the earlier value ("B") second.
In fact, because of this non-document-order behavior, that XPath expression is not streamable (the processor would fetch "A" and then have to back up to fetch "B", and backing up is not allowed in streaming).
On the other hand, this XPath expression results in outputting the values in document order:
//head/text()
That XPath results in outputting "B" followed by "A". Consequently that XPath is streamable.
So, some XPath expressions output in document order, some XPath expressions do not
Some XPath expressions are streamable, some are not.
Some XPath expressions are rewritten internally by the XPath-processor to make them streamable, some XPath expressions are not rewritten.
I am completely bewildered.
/Roger
________________________________________________________________________ The Numerical Algorithms Group Ltd is a company registered in England and Wales with company number 1249803. The registered office is: Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] General rule for designin, Martin Honnen | Thread | Re: [xsl] General rule for designin, Michael Kay |
Re: [xsl] General rule for designin, Martin Honnen | Date | Re: [xsl] General rule for designin, Costello, Roger L. |
Month |