RE: [xsl] Assigning types to variables

Subject: RE: [xsl] Assigning types to variables
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 13 Sep 2006 15:58:56 +0100
In the absence of an "as" attribute, $test refers to a document node that
has the element <one> as its child. 

With the "as" attribute present, $test refers to the <one> element.

See http://www.w3.org/TR/xslt20/#variable-values

Michael Kay
http://www.saxonica.com/

 

> -----Original Message-----
> From: tom tom [mailto:tomxsllist@xxxxxxxxxxx] 
> Sent: 13 September 2006 15:52
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Assigning types to variables
> 
> Hi all, if I have declared the following variable:
> 
> <xsl:variable name="test" as="element()">
>         <one>
>             <two>hello</two>
>         </one>
> </xsl:variable>
> 
> I don't understand why <xsl:sequence select="$test/two"/> 
> retrieves the value of <two/> while <xsl:sequence 
> select="$test/one/two"/> does not. If I omit the 'as' 
> attribute it works the other way round. What exactly is 
> happening when I assign a node() or element() or whatever 
> type to this variable?
> 
> Also could you advise what type I should be using for this 
> kind of task?
> 
> I guess my problem is that I'm thinking about variables in 
> XSLT 1 terms!
> 
> As usual thanks in advance
> 
> Tom
> 
> _________________________________________________________________
> Windows LiveT Messenger has arrived. Click here to download 
> it for free! 
> http://imagine-msn.com/messenger/launch80/?locale=en-gb

Current Thread