Subject: Re: [xsl] is the processing model of XSLT 1.0 bit ambiguous? From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 7 Oct 2016 07:24:10 -0000 |
I think your reasoning here is rather confused. > > 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. > 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]. 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. This makes no practical difference, because 1.0 constructs like xsl:for-each and xsl:apply-templates that operate on a node-set always process the nodes in document order anyway. > To refer to the 2nd one, we can write /p/x[2] or /p/x[position() = 2] Actually /p/x[2] doesn't refer to the second node in the result of /p/x. That would be (/p/x)[2]. It refers to a sequence containing every x node that is the second x child of a p element. > > When you come to the XSLT 2.0 world from 1.0 world, I believe you'd find lot of determinism (in the sense of formal languages. ref DFA). I can't see what determinism (in the DFA sense or any other) has to do with it. (I've occasionally seen people describe the semantics of path expressions in terms of regular expressions, and perhaps that's what you're thinking of, but it only really works for downwards axes). > > Michael Kay Saxonica
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] is the processing model of XS, Mukul Gandhi gandhi. | Thread | Re: [xsl] is the processing model o, Mukul Gandhi gandhi. |
[xsl] How to XSLT concat string, re, Rahul Singh rahulsin | Date | AW: [xsl] How to XSLT concat string, Dr. Patrik Stellmann |
Month |