[xsl] dynamically set priority in xsl:template

Subject: [xsl] dynamically set priority in xsl:template
From: Georges Schmitz <georges.schmitz@xxxxxxxxx>
Date: Fri, 02 Mar 2007 09:27:57 +0100
I want to dynamically set the priority of a template (with
$expand.level), with the objective to control the "amount of output"
from outside the stylesheet via parameter setting.

  <xsl:param name="slenderise.level" select="-1" />

  <xsl:template match="@db:type |
                       @db:size |
                       @db:nullable"
                       mode="slenderise"
                       priority="$slenderise.level" />

  <xsl:template match="@* | node()" mode="slenderise">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()" mode="slenderise"/>
    </xsl:copy>
  </xsl:template>

But I get this error:
  XTSE0530: Invalid numeric value for priority (0.0)

Is it not possible at all, to set the priority by a parameter? Because
it makes no difference if I declare $slenderise.level to be of type
xs:integer ,xs:double, etc. (which are numbers I suppose) or if I use
the function number() in the priority attribute. I couldn't find any
example to such a use case on the net.

Thanks for any advice,
Georges

PS
I'm using saxon8

Current Thread