This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: how to call a named template with a variable's value



Donald Ball writes:
>I'm looking to call a named template like this:
>...call-template name="$template-name"...
>unfortunately, it doesn't work, at least not with Xalan.

The XSLT spec says that it's not allowed. Since this is part of
a family of frequently-asked questions, let me take a moment to
describe how I get the answer quickly. I look at either my XSLT
reference card from Mulberry Technologies or Appendix B of the
W3C XSLT 1.0 Recommendation ("the spec") and I see
name="qname"
for call-template, as opposed to
name="{qname}"
which I see, for example, on xsl:element. The braces are the
signal that a variable could be used.

>Is there an alternate way I could do this?
>I just want to invoke one out of a set of
>templates based on the value of a variable at runtime.

If the list of triggering criteria is finite, then you can
set up an xsl:choose with cases based on the value. Each
case would have to call a template with a fixed name.
Another approach which may be better in some cases is a
two-pass solution, where you generate the stylesheet for
the second pass at runtime.
.................David Marston


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]