Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


Re: [xsl] Variable and parameter with same name and scope allowed in 2.0

From: David Carlisle <davidc@--------->
To:
Date: 5/2/2006 1:53:00 PM
>   In some case,
> it's clearer than the 1.0 version, where it is an error to
> have two variables of the same name in the same template
> rule (even in different "scopes", for example outside and
> inside an xsl:if).

In XSLT1.0 you can have two variables with the same name in a single
template if they are in distinct scopes, it's just an error if those
scopes overlap. 
so

<xsl:variable name="x"/>
<xsl:if test="true()">
<xsl:variable name="x"/>
</xsl:if>

is an error but

<xsl:if test="true()">
<xsl:variable name="x"/>
</xsl:if>
<xsl:variable name="x"/>

is not.

When this rule was added to XSLT 1 (in quite a late draft of the spec)
it invalidated several of my stylesheets (where I'd used "n" or "x" for
all variables) but probably on balance it has caught more user errors
than it has created. (A good thing). I think it's gone in 2.0 as there
are more variable binding possibilities (eg XPath for expressions) and
so any variable shadowing rule would probably affect xpath (and
possibly xquery) as well as xslt.

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
________________________________________________________________________


transparent
Print
Mail
Like It
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent