Subject: RE: Possible to pass 'empty sequence' to function?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 31 Mar 2005 13:11:45 +0100
|
> So, just to be clear about this:
>
> <xsl:variable name="foo" as="xs:string?">Hello</xsl:variable>
> <xsl:variable name="bar">World</xsl:variable>
>
> <xsl:value-of select="concat($foo,' ',$bar)"/>
>
> Here at the point of the concat() $foo is -already- a string
> and $bar is
> a nodeset? That is, $foo is never a nodeset and $bar is nodeset that
> gets implicitly cast to a string?
Yes.
Technically the conversion isn't a cast, it's atomization, but that's a
quibble. Also,
XSLT 2.0 doesn't talk about nodesets: the type of $bar is document-node().
>
> If so, this would mean it's possible to make a choice between long
> if-then-elses in the select attribute and choose/whens in the
> body based
> on readability/maintainability etc and not on performance.
Yes, absolutely. Saxon will probably generate the same internal code for
both.
Michael Kay
http://www.saxonica.com/
|