Subject: RE: [xsl] Possible to pass 'empty sequence' to function? From: "Andrew Welch" <ajwelch@xxxxxxxxxxxxxxx> Date: Thu, 31 Mar 2005 12:48:22 +0100 |
> > > <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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Possible to pass 'empty s, Michael Kay | Thread | RE: [xsl] Possible to pass 'empty s, Michael Kay |
RE: [xsl] Possible to pass 'empty s, Michael Kay | Date | Re: [xsl] Testing 2 XML documents f, Dimitre Novatchev |
Month |