This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Re: Re: What do we have in variable?
- From: "Roma Yankin" <polfin at narod dot ru>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Fri, 10 May 2002 14:38:20 +0400
- Subject: Re: [xsl] Re: Re: What do we have in variable?
- Reply-to: xsl-list at lists dot mulberrytech dot com
----- Original Message -----
From: "Dimitre Novatchev" <dnovatchev@yahoo.com>
To: <xsl-list@lists.mulberrytech.com>
Sent: Thursday, May 09, 2002 11:48 PM
Subject: [xsl] Re: Re: What do we have in variable?
> > >I'm just trying to understand, whenever we initialize some variable
> > > for example in that way <xsl:variable name="somevar"
> > > select="ancestor::*"/> what do we have stored inside it? Is it an
> > > array or some root node?
> >
> > It's not an array: there is no such thing in the data model. Nor is
> > it a root node: it's a node set.
>
> More precisely, in this concrete case this will evaluate to a node-set
> consisting only of element nodes, or the empty node-set.
>
> >
> > What node set it is, exactly, depends on the context node, which is
> > to say the node from which the ancestory axis, in this case, is
> > traversed; this will depend on where the variable declaration occurs
> > (inside which template or instruction, etc.). The dependence of the
> > node set returned by an XPath location path on the context in which
> > that location path is invoked is one of the important subtleties of
> > XPath commonly missed by newcomers to the language.
>
> I think that the question "what an xsl:variable contains?" is a little
> bit incorrect. The right question should be: "what an xsl:variable
> evaluates to?".
>
> For me "contains" is synonymous with "it is a store, that has contents
> at any moment".
>
> On the other side, an xsl:variable may be evaluated only when it's been
> referenced (e.g. lazy evaluation), or it may not be created at all
> until it's necessary, or it may be destroyed between two moments when
> it's referenced (e.g. space optimisation).
>
> I think, it's important to distinguish an xsl:variable from "store". In
> fact it is a "definition", which may or may not be evaluated.
>
> Cheers,
> Dimitre Novatchev.
>
>
>
>
Thanks everyone for your input!!! I guess the problem is resolved
Roman.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list