Subject: Re: [xsl] xsl:attributes as parameter to a template From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Tue, 3 May 2005 19:53:17 +1000 |
On 5/3/05, Jan Tietjens <jan.tietjens@xxxxxxxxxxxxxx> wrote: > Hello, > I am not understanding why the following xslt snipped produces an empty > 'someElement' element (XSLT 1.0): > > <xsl:template match="/"> > <xsl:call-template name="printSomeAttributes"> > <xsl:with-param name="attributes"> > <xsl:attribute name="juhu">Hello World!</xsl:attribute> > </xsl:with-param> > </xsl:call-template> > </xsl:template> > > <xsl:template name="printSomeAttributes"> > <xsl:param name="attributes"/> > <xsl:element name="someElement"> > <xsl:value-of select="$attributes"/> > </xsl:element> > </xsl:template> > If you run it with Saxon 8.4 the error message that is produced describes the cause of the problem very well: "Error at attribute constructor juhu="{...}" on line 6 of file:/C:/Program%20Files/Java/jdk1.5.0_01/bin/marrowtr.xsl: XTDE0410: Cannot create an attribute node whose parent is a document node Transformation failed: Run-time errors were reported" Saxon 6.5.3 produces also a good message: "Recoverable error at xsl:attribute on line 6 of file:/(Untitled): Cannot write an attribute node when no element start tag is open" What is happening is that the previous node produced is not an element (in fact it is a root node), so the attribute (even if created) cannot be attached to an element node. The result is either an error (in XSLT 2.0) or a recoverable error (as in XSLT 1.0) in which case no attribute is present in the output. Cheers, Dimitre Novatchev
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] xsl:attributes as paramet, Michael Kay | Thread | Re: [xsl] xsl:attributes as paramet, Jan Tietjens |
RE: [xsl] xsl:attributes as paramet, Michael Kay | Date | [xsl] Using the count function to c, Marco Mastrocinque |
Month |