xsl-list
[Top] [All Lists]

Re: [xsl] is the processing model of XSLT 1.0 bit ambiguous?

2016-10-07 03:27:43
On 7 October 2016 at 09:21, Mukul Gandhi gandhi(_dot_)mukul(_at_)gmail(_dot_)com
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:
Hi Mike,

On 7 October 2016 at 12:54, Michael Kay mike(_at_)saxonica(_dot_)com
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

I'd like to give one example, where I find the processing model of XSLT
1.0 ambiguous and it is a fit case of adoptiong to XSLT 2.0 or 3.0. Lets
say, there are sibling "x" nodes (the number of siblings is greater than 
1),
and we refer it as /p/x

When we write an experssion /p/x in XSLT 1.0, it may mean various "x"
nodes.

Actually it's an expression whose evaluation returns a node-set.


Thanks for reminding me about this. You're right about the terminology.



But in XSLT 2.0, it doesn't mean like that. To refer to the "x" nodes at
positions 2, 3 .. etc we have another way in 2.0. *In XSLT 2.0, /p/x means
the 1st "x" node*. To refer to all of "x" nodes, we can write in XSLT 2.0
/p/x[position() gt 0].

/p/x[position() gt 0] is always the same as /p/x as position() is
always 1 or more.


In XSLT 2.0, /p/x is an expression whose evaluation returns a node
sequence. The semantics are exactly the same as XSLT 1.0 except that instead
of a set of nodes (with no intrinsic order) we have a sequence of nodes that
are guaranteed to be in document order.


I think, in "document order" provided the items in the 2.0 sequence
represent nodes of the XML document. In case, the items of the sequence are
atomic values, then the term "document order" in this context doesn't make
sense, since atomic values have their own order (which is not "document
order").



But clearly the terms in this case the items are not atomic (since
they are element nodes)
you can in XSLT 2 make the last step return atomic values, but then
comparison with XSLT 1
is not possible as such an expression is an error in that case.

David
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

<Prev in Thread] Current Thread [Next in Thread>