Re: [xsl] when to use 'as' attribute on a variable

Subject: Re: [xsl] when to use 'as' attribute on a variable
From: David Carlisle <davidc@xxxxxxxxx>
Date: Wed, 8 Mar 2006 14:54:17 GMT
>> <xsl:variable name="x" as="element()">
>> <x/>
>> </xsl:variable>
>
>  Yes.  Actualy, I'm used to think about that as a tree whose the
>root is not a document-node().  Mmh, yes, not really a tree.


a better example that I could have given would have been

 <xsl:variable name="y" as="element()*">
 <x/>
 <x/>
 </xsl:variable>


which isn't a tree at all: it is a variable with value a sequence of two
elements with no common ancestor.

xslt/xpath does use "tree" informally to include document fragments that do
not start with / eg xpath 2.4.1

  An ordering called document order is defined among all the nodes
  accessible during processing of a given expression, which may consist of
  one or more trees (documents or fragments).

In  this sense $y consists of two (small) trees (each of which is a
fragment) but XSLT2 has a technical notion of "temporary tree" which is
the thing most often used for an in-memory tree constructed within the
stylesheet to which keys etc may be applied. These are constructed by
xsl:variable without an as attribute and they always construct a
sequence of a single / node, so never have root a parentless element.

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

Current Thread