RE: [xsl] Possible to pass 'empty sequence' to function?

Subject: RE: [xsl] 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/

Current Thread