RE: [xsl] Re: Reference to variable cannot be resolved.

Subject: RE: [xsl] Re: Reference to variable cannot be resolved.
From: Américo Albuquerque <aalbuquerque@xxxxxxxxxxxxxxxx>
Date: Mon, 17 Feb 2003 18:04:23 -0000
That also explains why the definitions of variables/params has to be the
first child so they can be in scope.

That makes easy to understand how xslt work, thanks.


-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Michael Kay
Sent: Monday, February 17, 2003 12:24 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: [xsl] Re: Reference to variable cannot be resolved.

> But this contradicts the fact that xslt doesn't run 
> sequentially. For the first variable to be shadowed by the 
> second, the first has to be set first. Why not the opposite? 
> Why not the second being shadowed by the first?

XSLT defines the scope of local variables so that a variable is visible
in its following-sibling instructions but not in its preceding-sibling
instructions. This means that there are indeed constraints on the order
in which instructions can be executed. This has nothing to do with using
the same variable name twice. If you write:

<xsl:variable name="x" select="bananas"/>
<xsl:copy-of select="$x"/>

then the second instruction has a dependency on the first, which
constrains the evaluation order.

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx 

> 
> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Michael Kay
> Sent: Monday, February 17, 2003 8:56 AM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: [xsl] Re: Reference to variable cannot be resolved.
> 
> > Hi.
> > Bu then how the compiler knows wish variable is the right 
> one? i. e.,
> > if I have:
> > <xsl:variable name="x" select="1"/>
> > <xsl:variable name="x" select="2"/>
> > 
> > when I do:
> > <xsl:value-of select="$x"/>
> > 
> > what will appear? 1 or 2?
> > 
> 2. The first variable is not in scope, because it is shadowed 
> by the second variable.
> 
> Michael Kay
> Software AG
> home: Michael.H.Kay@xxxxxxxxxxxx
> work: Michael.Kay@xxxxxxxxxxxxxx 
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


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


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


Current Thread