Re: [xsl] Variable scope when using imported stylesheets

Subject: Re: [xsl] Variable scope when using imported stylesheets
From: Ralph Holz <ralph.holz@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 24 Aug 2004 16:47:20 +0200
Hi,

The idea was to use variables to access a sub-nodeset relative to the current node at the time of calling (remember, a for-each calling imported templates). I wanted to declare these variables only once, but I think now that that is impossible as they get evaluated at the time of declaration. I'll have to refer you to my source in the other mail...

I think what I can do is to declare the variables within the imported template and thus get my abbreviation:

<xsl:template>
 <xsl:for-each select="baseDboFileReference">
   <xsl:call-template name="calledOne" />
 </xsl:for-each>
</xsl:template>

<xsl:template name="calledOne">
  <xsl:variable name="runOutOfIdeas" select="FileRefEval" />
  [siblings]
</xsl:template>

Since templates can get re-evaluated if called in this way, and variable scope is limited to this template and call, this does work (just tested). Of course, this means I have to insert the variables declaration in every template that is called in this way.

Do you see any caveats here?

Thanks for your input!

Ralph

Current Thread