[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[xsl] Forbidden with several xsl:attribute from xsl:apply-templates?
Subject: [xsl] Forbidden with several xsl:attribute from xsl:apply-templates? From: "Erik Beijnoff" <erik@xxxxxxxxxxxx> Date: Mon, 30 Jun 2003 17:09:18 +0200 |
I'm having a problem with two consecutive <xsl:apply-templates> that both should output <xsl:attribute>. I'm having a feeling that I'm trying to do a forbidden thing, but I figured I'd turn to the list to be sure. Im running FOP togheter with Xalan to create PDF:s. So the first step is the transformation of xml via xslt to xsl:fo then to pdf via FOP. However, problems occur. The execution is as follows: 1. A template gets called when an element with a "class" attribute is the active node. 2. The first apply-templates applies any template that is specific for elements with that name 3. The second apply-templates applies any template that is specific for elements with that class name In point three, the output "Cannot add attribute font-family after child nodes or before an element is produced. Attribute will be ignored." gets output at the command line. I'm aware that all <xsl:attribute> must appear in template data before any child nodes, but I'd figured that since both <apply-templates> only outputs <xsl:attribute>, it should work. Well, it seems like it perhaps doesn't work that way after all. <!-- The template where the error occurs--> <xsl:template match="p"> <fo:block> <!-- First apply works --> <xsl:apply-templates select="." mode="elementselection"/> <!-- Second gets it attribute output ignored --> <xsl:apply-templates select="." mode="classselection"/> <xsl:apply-templates/> </fo:block> </xsl:template> <!-- Attributes for a specific type of element is output --> <xsl:template match="h1" mode="elementselection"> <xsl:attribute name="font-family">sans-serif</xsl:attribute> <xsl:attribute name="font-size">20pt</xsl:attribute> ... </xsl:template> <!-- Attributes for an element with a specific class is output --> <xsl:template match="*[@class = 'leadtext']" mode="classselection"> <xsl:attribute name="border-bottom-color">sans-serif</xsl:attribute> <xsl:attribute name="border-bottom-width">0.5pt</xsl:attribute> ... </xsl:template> Regards Erik Beijnoff erik@xxxxxxxxxxxx erik@xxxxxxxxxxxxxx XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Transformer error using X, David Carlisle | Thread | RE: [xsl] Forbidden with several xs, Michael Kay |
[xsl] Transformer error using Xalan, Simon Kelly | Date | RE: [xsl] translate function, Greg Alvord |
Month |