Hi Georg,
You need to use template parameters as below:
<xsl:template match="//example" mode="multi">
<xsl:variable name="pmode">multi</xsl:variable>
<xsl:variable name="pmode" select="'multi'" /> <!-- or like this,
as David suggested -->
<xsl:call-template name="logfile">
<xsl:with-param name=pmode" select="$pmode" />
</xsl:call-template>
<xsl:apply-templates mode="multi"/>
</xsl:template>
<xsl:template name="logfile">
<xsl:param name="pmode" />
<xsl:choose>
<xsl:when test="$pmode='multi'">
<xsl:text>mode: multi</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>mode: normal</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Regards,
Mukul
On 6/26/06, Georg Hohmann <georg(_dot_)hohmann(_at_)gmail(_dot_)com> wrote:
Hello,
I've gone through the "variable" section at
http://www.dpawson.co.uk/xsl/sect2/N8090.html#d10293e40
but couldn't find a solution ... so here i'm back on the list.
I got a stylesheet like this
...
<xsl:template match="//example" mode="multi">
<xsl:variable name="pmode">multi</xsl:variable>
<xsl:call-template name="logfile"/>
<xsl:apply-templates mode="multi"/>
</xsl:template>
...
<xsl:template name="logfile">
<xsl:choose>
<xsl:when test="@pmode='multi'">
<xsl:text>mode: multi</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>mode: normal</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
I want to use this for writing a logfile which content depends on the
mode set by the "-im" option of saxon. But when i run this i get
"Variable $pmode has not been declared". It seems like the variable
declaration in the initial template is not recognized, but i don't
know why.
Any help is appreciated.
Regards,
Georg
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--