xsl-list
[Top] [All Lists]

Re: variable scope and test directives

2003-02-20 02:37:24
Is it just my Sablotron processor, or are variables declared inside
xsl:choose trapped inside the "choose" scope(?)?

That seems useless. It means I can't do things like.

<xsl:choose>
    <xsl:when test="/app/presentation/series_id='0'">
        <xsl:variable name="defaultOption">
            <option value="0">&#xa0;</option>
        </xsl:variable>
    </xsl:when>
    <xsl:otherwise>
        <xsl:variable name="defaultOption" select="''" />
    </xsl:otherwise>
</xsl:choose>

Of course you can, but the xsl:variables so declared go immediately out
of scope and are useless as you have found out.

Do:

<xsl:variable name="someName">
  <xsl:choose>
   <!-- As many values on conditions as necessary -->
  </xsl:choose>
</xsl:variable> 

[skip]

Surely no other language does this - because it's, er, stupid!

All block-structured languages have the notion of scope, e.g. in C:


if(someCondition)
{
  int c = 3;
}
else
{
}

/* The above variable "c" is out of scope here */



This is direct translation of your problem in C. As you see, in C the
situation is exactly the same...

So what's stupid about it?




=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL

__________________________________________________
Do you Yahoo!?
Yahoo! Tax Center - forms, calculators, tips, more
http://taxes.yahoo.com/

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



<Prev in Thread] Current Thread [Next in Thread>