[ http://issues.apache.org/jira/browse/XALANJ-2032?page=history ]
Brian Minchau reassigned XALANJ-2032:
-------------------------------------
Assign To: Santiago Pericas-Geertsen
> XSLTC: Multiple namespace prefixes produce unexpected prefixes in output
> ------------------------------------------------------------------------
>
> Key: XALANJ-2032
> URL: http://issues.apache.org/jira/browse/XALANJ-2032
> Project: XalanJ2
> Type: Bug
> Components: XSLTC
> Versions: 2.6
> Reporter: Alfred Nathaniel
> Assignee: Santiago Pericas-Geertsen
>
> The bug can be demonstrated with the following stylesheet:
> <?xml version="1.0"?>
> <!-- bug3.xsl -->
> <xsl:stylesheet
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:xhtml="http://www.w3.org/1999/xhtml"
> xmlns="http://www.w3.org/1999/xhtml"
> exclude-result-prefixes="xhtml"
> version="1.0">
> <xsl:template match="never">
> <xhtml:br/>
> </xsl:template>
> <xsl:template match="/">
> <html>
> <body>
> Hello<br/>world
> </body>
> </html>
> </xsl:template>
> </xsl:stylesheet>
> Given any input the result produced by the Xalan interpreter is:
> xalan -in bug3.xsl -xsl bug3.xsl
> <html xmlns="http://www.w3.org/1999/xhtml">
> <body>
> Hello<br/>world
> </body>
> </html>
> XSLTC 2.6.0 produces a different output:
> xalan -in in2.xml -xsl bug2.xsl -xsltc -v
> >>>>>>> Xalan Version Xalan Java 2.6.0, <<<<<<<
> <html xmlns="http://www.w3.org/1999/xhtml">
> <body>
> Hello<xhtml:br xmlns:xhtml="http://www.w3.org/1999/xhtml"/>world
> </body>
> </html>
> As XML documents both versions are equivalent that one could argue it not
> really being a bug. However, contemporary browsers (Explorer6.0,
> Firebox0.9.1, Mozilla1.7) ignore prefixed HTML tags, that the use of XSLTC
> for HTML-to-HTML transformations is handicaped.
> The problem is in org.apache.xalan.xsltc.compiler.Parser. For each namespace
> there is hashtable containing all tags in the stylesheet. In the example,
> <xhtml:br/> and <br/> map to the same hashtable entry but the prefix form of
> the first one seen by the parser is kept.
> The XSLTC code generator then uses this entry everywhere irrespective of the
> prefix form used at the current position in the stylesheet. In order to avoid
> the pro blem, the hashtable entries should be normalized to use a single
> prefix form.
> WORKAROUNDS
> The safest way to avoid the problem is to avoid using multiple prefixes for
> the same namespace. Note that with an appropriate <xls:import> sequence also
> <xsl:template match="xhtml:br"> without any literal <xhtml:br/> can lead to
> the same effect. That means for XHTML-to-XHTML transformations that all
> literal tags in the stylesheet must use the prefixed notation (<xhtml:html>).
> If that is too tedious for stylesheets containing a lot of literal HTML tags,
> you have to rearrange the imports and template definitions that the parser
> sees for all tags the non-prefixed form first. Otherwise we will have to
> filter the XSLTC output to do the prefix normalization in a separate step.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]