xsl-list
[Top] [All Lists]

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

2006-03-08 07:55:26
<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
________________________________________________________________________

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--