Wish List: Allow <xsl:choose> within <xsl:call-template>

Subject: Wish List: Allow <xsl:choose> within <xsl:call-template>
From: "Clark C. Evans" <clark.evans@xxxxxxxxxxxxxxxxxxxx>
Date: Wed, 10 Nov 1999 13:55:20 -0500 (EST)
One of the first things which I found disturbing with XSL
is that the calling mechanism is extremely tedious.
However, there is an unexpected advantage to this 
mechanism (if it were allowed):


<xsl:template name="base-function" >
  <xsl:param name="one" select="'one-default'" />
  <xsl:param name="two" select="'two-default'" />
  ...
</xsl:template>

<xsl:template name="derived-function">
  <xsl:param name="one" />
  ...
  <xsl:variable name="done" select="false()"/>
  ...
  <xsl:call-template name="base-function">
      <xsl:choose>
        <xsl:when test="$one">
          <xsl:with-param name="one" select="$one" />
        </xsl:when>
        <xsl:when test="$done" >
          <xsl:with-param name="one" select="$done" />
        </xsl:when>
      </xsl:choose>
      ...
  </xsl:call-template>
</xsl:template>


The results are suprizing.  The derived
function may provides an alternative default
for parameter "one" ($done) depending on some
expression (currently false()).  In addition,
it allows the user to ovverride this derived
default ($one).  And, for those cases which
slip through the cracks, the base function's
default is provided.  Nice.  Very nice.

Clark


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


Current Thread