Subject: Re: Variable Scoping
From: Phil Lanch <phil@xxxxxxxxxxxxxxx>
Date: Wed, 03 Nov 1999 16:41:56 +0000
|
"Clark C. Evans" wrote:
>
> $ cat test.xml
> <parent>
> <child/>
> </parent>
>
> $ cat test.xsl
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0"
> xmlns:data="any-uri" >
> <xsl:template match="/" >
> <xsl:variable name="x">Outer</xsl:variable>
> <xsl:for-each select="*">
> <xsl:variable name="x">Inner</xsl:variable>
> <xsl:value-of select="$x" />
> </xsl:for-each>
> </xsl:template>
> </xsl:stylesheet>
>
> $ saxon test.xml test.xsl Error
> processing source document At xsl:variable on line 8 of
> file:/home/clark/test.xsl: Local variable x is already declared
>
> $ xt test.xml test.xsl
> Inner
>
> ...
>
> Which one is correct?
The PR [11.5 Variables and Parameters within Templates] says
It is an error if a binding established by an xsl:variable or xsl:param
element within a template shadows another binding established by an
xsl:variable or xsl:param element also within the template.
- So Saxon is correct.
Phil Lanch
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|