RE: [xml-dev] XPath 2.0 data-model - dm:string-value of a node

From
Michael Kay <>
To
"'G. Ken Holman'" <>,
Date
2008-02-29T09:23:49
ID
<00cb01c87ab4$cb008510$6401a8c0@turtle>
Thread
RE: [xml-dev] XPath 2.0 data-model - dm:string-value of a node
> >What is expected to be returned for /a/text() ?
> >Is it "xz" or "xyz"?
> 
> Depends on whether you are using XSLT 1.0 or XSLT 2.0:
> >
> ><a>x<b>y</b>z</a>
> 
>    XSLT 1.0 returns "x" because it returns the value of the first
>             of the child text nodes addressed in document order
> 
>    XSLT 2.0 returns "xz" because it returns the value of all of
>             the child text nodes addressed in document order.
> 

Ken, your answer is correct for the expression

<xsl:value-of select="/a/text()"/>

But it's not correct for /a/text() itself, as used for example in

<xsl:copy-of select="/a/text()"/>

Specifically, the difference between 1.0 and 2.0 behaviour is a change in
the <xsl:value-of> instruction, not a change in the meaning of the path
expression /a/text().

Michael Kay
http://www.saxonica.com/