xsl-list
[Top] [All Lists]

RE: [xsl] dynamic template naming XSL1.0 and Saxon 6.5.5

2006-06-19 01:38:28
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(_at_)swisslab(_dot_)de [mailto:news(_at_)swisslab(_dot_)de] 
Sent: 19 June 2006 08:34
To: 'xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com'
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

--~------------------------------------------------------------------
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>