Re: Reference to variable cannot be resolved.
Michael Kay wrote: > > The > > few programming classes I've taken (using procedural > > languages) have taught that a lot of global variables are a > > Bad Thing, but maybe that axiom doesn't necessarily apply to XSLT. > > > > Global variables are a bad thing in procedural programming because they > can be updated from anywhere, which leads to a lot of errors. > > They do no harm in XSLT because they are only evaluated once. True, but in this case, x seems to be evaluated twice: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:variable name="x" select="'hello'"/> <xsl:template match="/"> <result> <r><xsl:value-of select="$x"/></r> <!-- $x is 'hello' here --> <xsl:variable name="x" select="'hi'"/> <r><xsl:value-of select="$x"/></r> <!-- $x is 'hi' here --> <xsl:call-template name="test"/> </result> </xsl:template> <xsl:template name="test"> <r><xsl:value-of select="$x"/></r> <!-- $x is 'hello' here --> </xsl:template> </xsl:stylesheet> Explaining to people why that's legal, after telling them they can only assign x once, is a nice challenge :) Mike -- Mike J. Brown | http://skew.org/~mike/resume/ Denver, CO, USA | http://skew.org/xml/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format