Re: exslt:node-set differs between Xalan-J and XSLTC
Julian Reschke <[email protected]> Thu, 21 Oct 2010 16:30:50 +0200
| Newsgroups | gmane.text.xml.xalan.java.user |
|---|---|
| Message-ID | <[email protected]> |
On 21.10.2010 16:12, Mukul Gandhi wrote: > Hi Julian, > > On Mon, Oct 18, 2010 at 8:28 PM, Julian Reschke<[email protected]> wrote: >> <xsl:variable name="t"> >> <root> >> <x>1</x> >> <x>2</x> >> <x>3</x> >> </root> >> </xsl:variable> >> >> <xsl:variable name="tns" select="exslt:node-set($t)/root/x"/> [1] > >> <xsl:call-template name="foo"> >> <xsl:with-param name="t" select="$tns"/> >> <xsl:with-param name="i" select="'1'"/> >> </xsl:call-template> > >> <xsl:template name="foo"> >> <xsl:param name="t"/> >> <xsl:param name="i"/> >> <xsl:variable name="tns" select="exslt:node-set($t)"/> [2] > > Since at line [1], you've already constructed a node-set then what's > the need of doing again node-set($t) at [2] ? At some point I got an error and thought that passing a nodeset as a parameter to a template would turn it into a RTF. (That code was more complex, so I'll have to investigate). > At line [2] I believe, $t is already a node-set and must be accessed > simply like $t and not node-set($t). > > Thought I haven't cross checked what's Xalan's behavior when we do for example: > > xx:node-set(xx:node-set($rtf)) which is what I understand you've > intended to mean with your syntax. And this logically looks wrong to > me. My expectation is that applying node-set() to a node set should be harmless, but <http://www.exslt.org/exsl/functions/node-set/index.html> indeed doesn't say -- but I'm ready to say it's the only sane thing to do... Best regards, Julian