Subject: RE: 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: 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
|