[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] mode computation case
Hi,
I have something like ... <xsl: variable name="var1" select="...some value or node-set generating expression"/> <xsl: variable name="var1" select="...some other value or node-set generating expression"/> <xsl: variable name="var1" select="...some other other value or node-set generating expression"/> <xsl: variable name="var1" select="...another value or node-set generating expression"/> <xsl:choose> <xsl:when test="@mode eq 'mode1'"> <xsl:apply-templates select="$nodetree" mode="mode1"> <xsl:with-param name="param1" tunnel="yes" select="$var1"/> <xsl:with-param name="param2" tunnel="yes" select="$var2"/> <xsl:with-param name="param3" tunnel="yes" select="$var3"/> <xsl:with-param name="param4" tunnel="yes" select="$var4"/> </xsl:apply-templates> </xsl:when> <xsl:when test="@mode eq 'mode2'"> <xsl:apply-templates select="$nodetree" mode="mode2"> <xsl:with-param name="param1" tunnel="yes" select="$var1"/> <xsl:with-param name="param2" tunnel="yes" select="$var2"/> <xsl:with-param name="param3" tunnel="yes" select="$var3"/> <xsl:with-param name="param4" tunnel="yes" select="$var4"/> </xsl:apply-templates> </xsl:when> <xsl:when test="@mode eq 'mode3'"> <xsl:apply-templates select="$nodetree" mode="mode3"> <xsl:with-param name="param1" tunnel="yes" select="$var1"/> <xsl:with-param name="param2" tunnel="yes" select="$var2"/> <xsl:with-param name="param3" tunnel="yes" select="$var3"/> <xsl:with-param name="param4" tunnel="yes" select="$var4"/> </xsl:apply-templates> </xsl:when> <xsl:when test="@mode eq 'mode4'"> <xsl:apply-templates select="$nodetree" mode="mode4"> <xsl:with-param name="param1" tunnel="yes" select="$var1"/> <xsl:with-param name="param2" tunnel="yes" select="$var2"/> <xsl:with-param name="param3" tunnel="yes" select="$var3"/> <xsl:with-param name="param4" tunnel="yes" select="$var4"/> </xsl:apply-templates> </xsl:when> <xsl:when test="@mode eq 'mode5"> <xsl:apply-templates select="$nodetree" mode="mode5"> <xsl:with-param name="param1" tunnel="yes" select="$var1"/> <xsl:with-param name="param2" tunnel="yes" select="$var2"/> <xsl:with-param name="param3" tunnel="yes" select="$var3"/> <xsl:with-param name="param4" tunnel="yes" select="$var4"/> </xsl:apply-templates> </xsl:when> <xsl:when test="@mode eq 'mode6'"> <xsl:apply-templates select="$nodetree" mode="mode6"> <xsl:with-param name="param1" tunnel="yes" select="$var1"/> <xsl:with-param name="param2" tunnel="yes" select="$var2"/> <xsl:with-param name="param3" tunnel="yes" select="$var3"/> <xsl:with-param name="param4" tunnel="yes" select="$var4"/> </xsl:apply-templates> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="$nodetree" mode="modeX"> <xsl:with-param name="param1" tunnel="yes" select="$var1"/> <xsl:with-param name="param2" tunnel="yes" select="$var2"/> <xsl:with-param name="param3" tunnel="yes" select="$var3"/> <xsl:with-param name="param4" tunnel="yes" select="$var4"/> </xsl:apply-templates> </xsl:otherwise> </xsl:choose> ... And there is here only 7 modes and 4 parameters, instead, if the apply-templates could be computed, I would have liked to possibly have something less redundant, for any number of modes and parameters, more like ... <xsl:apply-templates select="$nodetree" mode="@mode"> <xsl:with-param name="param1" tunnel="yes" select="...some value or node-set generating expression"/> <xsl:with-param name="param2" tunnel="yes" select="...some other value or node-set generating expression"/> <xsl:with-param name="param3" tunnel="yes" select="...some other other value or node-set generating expression"/> <xsl:with-param name="param4" tunnel="yes" select="..another value or node-set generating expression"/> </xsl:apply-templates> ... It seems that it could save space, variables, design time, run time, typos, errors, as well as ease maintenance and update (e.g adding mode7 and forgetting to add another xsl:when clause for it ...), while increasing readability. Are there more elegant ways to handle mode selection? Can this be a useful use-case to support allowing "mode" to be computed somehow, in future XSLT updates? Thank you, ac
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|