Re: [xsl] Re: XSL Variable declaration

Subject: Re: [xsl] Re: XSL Variable declaration
From: Vasu Chakkera <vasucv@xxxxxxxxx>
Date: Mon, 14 Feb 2011 12:09:16 +0000
Dear David/Mike.
Thanks for this..

Yeas, It does kind of confuse the reader..

Vasu

On 14 February 2011 11:07, Michael Kay <mike@xxxxxxxxxxxx> wrote:
> On 14/02/2011 10:48, Vasu Chakkera wrote:
>>
>>    There is an interesting stylesheet I came across this morning where
>> some developer had declared two Xsl:variables one after the other with
>> the same name.
>>    <xsl:variable name = "foo">
>>   </xsl:variable>
>>  <xsl:variable name = "foo">
>>   </xsl:variable>
>>    Not sure why he did that, but to my surprise, it seems to be valid
>> in XSLT2 .. and as my expectations, it failed in XSLT1 saying two
>> variables cant have same name within the same scope..
>>   Is this right??
>
> Yes, this is permitted in XSLT 2.0 but not 1.0 (I assume you are talking
> about local variables).
>
> It can be quite a handy style of programming, so long as you recognize that
> each xsl:variable is a new variable:
>
> <xsl:variable name="s" select="@something"/>
> <xsl:variable name="s" select="substring-before($s, ':')"/>
> <xsl:variable name="s" select="substring-after($s, '/')"/>
> <xsl:variable name="s" select="concat('(', $s, ')')"/>
> <xsl:value-of select="$s"/>
>
> Saves (a) writing deeply nested XPath expressions, and (b) thinking up new
> variable names for intermediate results, or (c) changing variable names
when
> an extra computation step is introduced.
>
> But it might confuse some readers, so use with care.
>
> Michael Kay
> Saxonica
>
>



--
Vasu Chakkera
NodeLogic Limited
Oxford
www.nodelogic.org
==============

Current Thread