Subject: Re: [xsl] [Fwd: Unwanted xmlns attributes in ouput html tags] From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Fri, 26 Sep 2003 09:40:44 +0100 |
Hi Dinesh, > I am hoping someone may have some ideas to help resolve a problem > that I am currently experiencing. It seems rather unique and > specific. I am getting unwanted xmlns attributes appearing in output > html tags in a two-stage transform process and it appears to be due > to the use of includes in the first pass. It also seems to be an > xsl-processor-specific problem. I'm afraid that it looks as though this problem is down to a bug in the XSLT processor that you're using. The best course of action would be to upgrade to a processor that doesn't exhibit the bug, for example Xalan 2.5.1, but I understand that you can't do that... To work around the bug, you could try adding exclude-result-prefixes="xsl" to the <xsl:stylesheet> element in inc.ixsl to see if that has any effect. Or you could try generating the elements using <xsl:element> rather than literal result elements; i.e. use: <ixsl:template name="my_step_one_template"> <ixsl:element name="tr"> <ixsl:element name="td"> <ixsl:attribute name="bgcolor">#666699</xsl:attribute> <ixsl:element name="b"> Some text output by step one </ixsl:element> </ixsl:element> </ixsl:element> </ixsl:template> Or you could try generating <xsl:element> instructions in intermediate.xsl: <ixsl:template name="my_step_one_template"> <xsl:element name="tr"> <xsl:element name="td"> <xsl:attribute name="bgcolor">#666699</xsl:attribute> <xsl:element name="b"> Some text output by step one </xsl:element> </xsl:element> </xsl:element> </ixsl:template> > Getting to the final transform (intermediate.xsl + test_data.xml => > final.html), it produces: > > ***** final.html *********** > <html> > <tr xmlns:xsl="http://www.w3.org/1999/XSL/TransformAlias"> > <td bgcolor="#666699"><b> > Some text output by step one > </b></td> > </tr> > <tr></tr><p></p></html> > ***** end file ************* > > Notice that "my_step_two_template" didn't get called, or at least > there is no output from that template in "final.html". My > interpretation is that because of the pesky "xmlns" attribute > appearing on the <tr> (with the ".../TransformAlias" URI), the > processor reads the "xsl:call-template" as being in the > "TransformAlias" namespace, hence does not process it, and hence the > xsl template is not called. The my_step_two_template *is* being called here -- otherwise you wouldn't get the <p> element after the second <tr> element. You might, though, get problems if you have XSLT instructions within the <tr> element -- it depends on what the buggy processor outputs when you generate XSLT instructions within the <tr> element as generated by my_step_one_template in inc.ixsl. By the way, why are you using disable-output-escaping in: > <xsl:template name="my_step_two_template"> > <xsl:param name="text" /> > <xsl:text disable-output-escaping="yes"><p></xsl:text> > <xsl:value-of select="$text" /> > <xsl:text disable-output-escaping="yes"></p></xsl:text> > </xsl:template> When you would get exactly the same output from a literal result element: <xsl:template name="my_step_two_template"> <xsl:param name="text" /> <p> <xsl:value-of select="$text" /> </p> </xsl:template> Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] [Fwd: Unwanted xmlns attribut, Dinesh Gurram | Thread | Re: [xsl] [Fwd: Unwanted xmlns attr, Dinesh Gurram |
Re: [xsl] Text Table with sorting, Jeni Tennison | Date | Re: [xsl] table in html with exactl, Jeni Tennison |
Month |