|
Subject: RE: [xsl] dynamic template naming XSL1.0 and Saxon 6.5.5 From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Mon, 19 Jun 2006 09:38:13 +0100 |
Saxon in fact has an extension element
saxon:call-template
which is like xsl:call-template except that the "name" attribute is an AVT.
You don't need saxon:evaluate with this, just write
<saxon:call-template name="{$testVar/Configuration/Execute/@template}"/>
It's always better, of course, to work without extensions if you can. You
might like to look at Dimitre Novatchev's FXSL technique, which exploits the
ability of xsl:apply-templates to do dynamic dispatch. Rather than having a
variable holding the name of a template to be invoked, you have a variable
holding a node, typically a node with a unique name in some special
namespace; and then you do apply-templates on that node. By putting
different nodes in the variable, you can then cause different templates to
be invoked.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: news@xxxxxxxxxxx [mailto:news@xxxxxxxxxxx]
> Sent: 19 June 2006 08:34
> To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx'
> Subject: [xsl] dynamic template naming XSL1.0 and Saxon 6.5.5
>
> Hello List,
>
> I want to call templates dynamicly. With dynamicly I mean,
> that the templates name is determined at runtime.
> I doing this with xPathes stored in variables and the
> saxon:evaluate function allready, and it works pretty fine.
> For instance. I have a variable with an stored string that I
> want to be the templates name that should be executed.
> <xsl:variable name="testVar">
> <Configuration>
> <Execute template="templateName"/>
> </Configuration>
> </xsl:variable>
>
> If I try
> <xsl:call-template
> name="{saxon:evaluate($testVar/Configuration/Execute/@template)}"/>
>
> I want a template with the name of 'templateName' to be executed.
> <xsl:template name="temlpateName">
> ...
> </xsl:template>
>
> I ll get a error message saying that the name of the called
> template must be a valid Qname. :(
>
> Does anyboy know how I could solve my problem?
>
> Thanks & with best regards,
> Jan
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] dynamic template naming X, andrew welch | Thread | Re: [xsl] dynamic template naming X, Dimitre Novatchev |
| Re: [xsl] dynamic template naming X, andrew welch | Date | [xsl] Managing namespaces ... again, Georg Hohmann |
| Month |