Subject: Re: [xsl] Union of XPath sequences and the meaning of the uniqueness constraint From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Sun, 10 Oct 2004 21:50:39 +0100 |
Hi Kenneth, > The union operator in XPath 2.0 is described as eliminating > duplicates from the two sequences that it is combining. What is the > criterion used for determining if two nodes in the resulting > sequence are unique? Duplicates are removed based on node identity. When you set a variable using the content of <xsl:variable>, and don't use an 'as' attribute, as in: <xsl:variable name="a"> <xsl:sequence select="2" /> </xsl:variable> the XSLT processor automatically creates a document node and adds the result of the sequence constructor inside the <xsl:variable> element to that document node. When you add an atomic value to a document node, the atomic value is converted to a text node and that text node is added. So, in your code, the variable $a is set to a document node with a single text node child whose string value is "2". Similarly, $b is set to a *different* document node with a single text node child whose string value is "2". These are different document nodes, so "$a | $b" is a sequence of two document nodes. But "$a | $a" results in a sequence containing the single document node held by the variable $a. If you want the variable $a to hold the atomic value "2", then you should either use the select attribute on <xsl:variable>, as in: <xsl:variable name="a" select="2" /> or use the 'as' attribute to say that the variable should hold an integer, as in: <xsl:variable name="a" as="xs:integer"> <xsl:sequence select="2" /> </xsl:variable> If you do this, then you will find that the expressions "$a | $a" and "$a | $b" will give you an error, since the union operator can only operate over sequences of nodes. Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Union of XPath sequences and , Kenneth Stephen | Thread | [xsl] xsl:sequence produces error I, Kenneth Stephen |
Re: [xsl] xsl:sequence produces err, Jeni Tennison | Date | RE: [xsl] re-ordering nodes/partial, Kevin Bird |
Month |