Re: [xsl] calling template with name passed in a variable

Subject: Re: [xsl] calling template with name passed in a variable
From: David Carlisle <davidc@xxxxxxxxx>
Date: Fri, 18 Dec 2009 21:22:20 GMT
> The above makes the same template matched for any element of
> $InPlaceTypesList list.

it was a direct copy of your suggestion

 <xsl:template match="xsd:element[@type=$InPlaceTypesList]">

this matches all elements with type in that list.

Ypu then wanted to do this

>    <xsl:call-template name="@type"/> // <-- error line

I suggested you do instead

<xsl:apply-templates select="@type"/>

then teh only other change is that each template that you wanted to name
but call with the name determoned at runtime change

<xsl:template name="MyTypeX"">

to 

<xsl:template match="xsd:element[@type='MyTypeX']">

So my suggested code had exactly the same number of templates and
structure as your suggestion, but used match instead of name, and is
legal xslt.



David

________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________

Current Thread