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

Subject: Re: [xsl] is the processing model of XSLT 1.0 bit ambiguous?
From: "David Carlisle d.p.carlisle@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 7 Oct 2016 08:27:37 -0000
On 7 October 2016 at 09:21, Mukul Gandhi gandhi.mukul@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> Hi Mike,
>
> On 7 October 2016 at 12:54, Michael Kay mike@xxxxxxxxxxxx
> <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> 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

Current Thread