XSLT variables and parameters don't have a value until run-time, so you
can't refer to them in use-when. What you can do instead is to refer to Java
system properties
use-when="system-property('slenderise.level') = '1'"
which you can set from the command line using -Dslenderise.level=1 or from a
calling Java application using System.setProperty().
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Georges Schmitz [mailto:georges(_dot_)schmitz(_at_)heitec(_dot_)de]
Sent: 02 March 2007 10:30
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] dynamically set priority in xsl:template
Andrew Welch wrote:
On 3/2/07, Georges Schmitz <georges(_dot_)schmitz(_at_)heitec(_dot_)de>
wrote:
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:variable name="suppress" select="tokenize($names, ' ')"
as="xs:string*"/>
Thank you for this hint, but it isn't practicable for me (I
gave just a simplified example); the stylesheet is rather
complex: 11 apply-templates in mode "slenderise" ...
I would prefer the "pass-fail" solution proposed by Michael
Kay, but when I tried the following, I get again an error:
<xsl:template match="@db:type |
@db:size |
@db:nullable"
mode="slenderise"
priority="2" />
use-when="$slenderise.level = 1"
==>
XPST0008: Error in use-when expression. XPath syntax error
at char 18 on line 211 in
{$slenderise.level = 1}:
Variable $slenderise.level has not been declared
The parameter is definitively set, so what is wrong?
"$slenderise.level = 1" can be evaluated to a boolean, or am
I missing another thing?
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--