xsl-list
[Top] [All Lists]

RE: Possible to pass 'empty sequence' to function?

2005-03-31 04:48:22

<xsl:variable name="y" as="string?">hello</xsl:variable>

$x is (a sequence of one) string with value "hello"


Is this really the case?  Does it really mean that the
processor doesn't
construct the temporary tree (and then atomise it?) - if so 
then it's
really useful.

The semantics are that the processor creates a text node and 
then atomizes it to a string.

What happens internally is of course up to the optimizer.

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?  

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.

cheers
andrew

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--