<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>
--~--