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

Subject: Re: Wish List: Allow <xsl:choose> within <xsl:call-template>
From: "Nikita Ogievetsky" <nogievet@xxxxxxxxxxxx>
Date: Thu, 11 Nov 1999 10:09:55 -0000
Yow always can define parameters before calling a template.
It is not very big price to pay.
For example:

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

On Thursday, 11 Nov 1999, Clark C. Evans wrote:
> On Wed, 10 Nov 1999, Mike Brown wrote:
> > I don't get it. Did your example templates demonstrate what you were
trying
> > to say? It seems like this would do just as well in the second template,
and
> > wouldn't be that much more tedious:
> >
> >   <xsl:choose>
> >     <xsl:when test="$one">
> >       <xsl:call-template name="base-function">
> >         <xsl:with-param name="one" select="$one" />
> >       </xsl:call-template>
> >     </xsl:when>
> >     <xsl:when test="$done" >
> >       <xsl:call-template name="base-function">
> >         <xsl:with-param name="one" select="$done" />
> >       </xsl:call-template>
> >     </xsl:when>
> >   </xsl:choose>
>
> This works when you only have one parameter; but in the
> general case with N parameters, you have N! cases
> to handle with the current method shown above -- by
> allowing the <xsl:choose> inside the <xsl:call-template>
> you avoid all this unnecessary writing.   In my current
> application I have 8 parameters in the base function;
> each with non-trivial default values.  As a work-around
> I've had to make each "default value" a stand-alone
> template that is called by the derived function.
>
> Does this explain better?


Nikita Ogievetsky
http://www.cogx.com



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


Current Thread