Re: [xsl] call-template and execute xsl command

Subject: Re: [xsl] call-template and execute xsl command
From: David Carlisle <davidc@xxxxxxxxx>
Date: Mon, 15 Apr 2002 23:26:58 +0100


called like this:
 <xsl:variable name='y'>
   <xsl:call-template name='attributes'/>
 </xsl:variable>

No, not called like that. xsl:variable if used with non-empty content
creates a new document fragment. This is essentially a new document, it
starts off with a top level root node. You can't add attributes to a
root node, so calling your attribute template (which calls
xsl:attribute) is a recoverable error.

Even if that had done what you wanted and produced a variable containing
a set of attribute nodes,

<xsl:value-of select="$y"/>

wouldn't have produced any attributes as value-of always takes the
string value of its argument (you'd need copy-of to get structured
values)

You don't want a variable at all here, just call the template directly
ie replace
<xsl:value-of select="$y"/>
by
   <xsl:call-template name='attributes'/>

or you could use attribute-set feature (which is probably what you want
here, although personally I never use it)

David

_____________________________________________________________________
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.

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


Current Thread