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 21:11:32 +1000
On Thu, 31 Mar 2005 11:58:51 +0100, Andrew Welch
<ajwelch@xxxxxxxxxxxxxxx> wrote:
> 
> > if you don't use as then an xsl:variable with content and no
> > select attribute produces a temporary tree, what we used to
> > lovingly call a result tree fragment.
> >
> > <xsl:variable name="x">hello</xsl:variable>
> >
> > $x is (a sequence of one) document node that has a single
> > text node child that has string value "hello"
> >
> >
> > <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.


Also,  using:

   <xsl:variable name="vFun" as="element()">
      <myFun:myFun/>
   </xsl:variable>

is much faster than:

   <xsl:variable name="vFun" select="document('')/*/myFun:*[1]"/>

because no re-parsing of the stylesheet will take place in the former case.

I am gradually upgrading FXSL to use this technique.


Cheers,
Dimitre Novatchev

Current Thread