Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


RE: [xsl] dynamically set priority in xsl:template

From: "Michael Kay" <mike@------------>
To:
Date: 3/2/2007 10:38:00 AM
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.schmitz@xxxxxxxxx] 
> Sent: 02 March 2007 10:30
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] dynamically set priority in xsl:template
> 
> Andrew Welch wrote:
> > On 3/2/07, Georges Schmitz <georges.schmitz@xxxxxxxxx> 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?


transparent
Print
Mail
Like It
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent