[ https://issues.apache.org/jira/browse/XALANJ-2411?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12538121 ]
Christine Li commented on XALANJ-2411: -------------------------------------- The patch looks good to me. > XSLTC creates namespace nodes when it could re-use existing ones in scope. > -------------------------------------------------------------------------- > > Key: XALANJ-2411 > URL: https://issues.apache.org/jira/browse/XALANJ-2411 > Project: XalanJ2 > Issue Type: Bug > Affects Versions: The Latest Development Code, 2.7.1 > Reporter: Brian Minchau > Assignee: Brian Minchau > Attachments: xalanj-2411.patch2.txt > > > XSLTC creates extra namespace nodes, mapping ns0, ns1 ... to URIs when an > existing namespace mapping is > in scope and its prefix could be used (or the default namespace could be > used). > Here is a stylesheet showing the problem: > <?xml version="1.0" encoding="UTF-8"?> > <!-- bug.xsl --> > <xsl:stylesheet version="1.0" > xmlns="http://uri1" > xmlns:prfx2='http://uri2' > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:output method="xml" indent="yes" /> > <xsl:template match="/"> > <out2> > <xsl:call-template name="makeElement1"> > <xsl:with-param name="tagName" select="'elemName1'" /> > </xsl:call-template> > > <xsl:call-template name="makeElement2"> > <xsl:with-param name="tagName" select="'elemName2'" /> > </xsl:call-template> > > <xsl:call-template name="makeElement3"> > <xsl:with-param name="tagName" select="'elemName3'" /> > </xsl:call-template> > </out2> > </xsl:template> > > <xsl:template name="makeElement1"> > <xsl:param name="tagName"/> > <xsl:element name="{$tagName}" namespace='http://uri1'/> > </xsl:template> > > <xsl:template name="makeElement2"> > <xsl:param name="tagName"/> > <xsl:element name="{$tagName}" namespace='http://uri2'/> > </xsl:template> > > <xsl:template name="makeElement3"> > <xsl:param name="tagName"/> > <xsl:element name="{$tagName}" namespace='http://uri3'/> > </xsl:template> > > </xsl:stylesheet> > When run with any XML input, or this one, bug.xml: > <?xml version="1.0" encoding="UTF-8"?><doc/> > Using say the process command: > java org.apache.xalan.xslt.Process -XSLTC -IN bug.xml -XSL bug.xsl > The output is this: > <?xml version="1.0" encoding="UTF-8"?><out2 xmlns:prfx2="http://uri2" > xmlns="http://uri1"> > <ns0:elemName1 xmlns:ns0="http://uri1"/> > <ns1:elemName2 xmlns:ns1="http://uri2"/> > <ns2:elemName3 xmlns:ns2="http://uri3"/> > </out2> > The output should be: > <?xml version="1.0" encoding="UTF-8"?><out2 xmlns:prfx2="http://uri2" > xmlns="http://uri1"> > <elemName1/> > <elemName2 xmlns="http://uri2"/> > <elemName3 xmlns="http://uri3"/> > </out2> -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]