This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.




__________________________________________________
Do You Yahoo!?
Yahoo! Shopping - Mother's Day is May 12th!
http://shopping.yahoo.com

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]