[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Possible to pass 'empty sequence' to function?
Subject: Re: [xsl] Possible to pass 'empty sequence' to function? From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Thu, 31 Mar 2005 22:13:40 +1000 |
On Thu, 31 Mar 2005 12:48:22 +0100, Andrew Welch <ajwelch@xxxxxxxxxxxxxxx> wrote: > > > > > <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? Yes, but more precisely, we can say that $foo is not a node (it is a value of simple type) and $bar is a document node (temporary tree). > > 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. defining $foo as xs:string is both: more readable/maintainable and more efficient. Cheers, Dimitre Novatchev.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Possible to pass 'empty s, Michael Kay | Thread | RE: [xsl] Using Javascript to pass , Maria Amuchastegui |
RE: [xsl] Possible to pass 'empty s, Michael Kay | Date | RE: [xsl] Testing 2 XML documents f, Michael Kay |
Month |