[xsl] forwarding only existing parameter

Subject: [xsl] forwarding only existing parameter
From: Guillaume Rousse <rousse@xxxxxxxxxxxxxx>
Date: Mon, 17 Sep 2001 12:26:13 +0200
Hello list.
I'm trying to forward parameters from a template to another, only if they are 
defined, in the most simple way.

<template match="foo">
  <param name="bar"/>

  <apply-templates select=".">
    <with-param name="bar" select="$bar"/>
  </apply-templates>
</template>
This one actually forward an empty bar argument when not called with a bar 
argument, so it's wrong.

<template match="foo">
  <param name="bar"/>

  <apply-templates select=".">
    <if test="$bar">
      <with-param name="bar" select="$bar"/>
    </if>
  </apply-templates>
</template>
This one is rejected as not xsl-compliant

<template match="foo">
  <param name="bar"/>
  
  <choose>
    <when test="$bar">
      <apply-templates select=".">
        <with-param name="bar" select="$bar"/>
      </apply-templates>
    </when>
    <otherwise>
      <apply-templates select="."/>
    </otherwise>
  </choose>
</template>
This one is OK, but really ugly. Isn't there any other way ?
-- 
Guillaume Rousse <rousse@xxxxxxxxxxxxxx>
GPG key http://lis.snv.jussieu.fr/~rousse/gpgkey.html

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


Current Thread