[ https://issues.apache.org/jira/browse/XALANJ-2404?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12533406 ]
Brian Minchau commented on XALANJ-2404: --------------------------------------- Robert, On first glance I agree that this is bug. The XSLT 1.0 recommendation says this on the namespace attribute of xsl:element (which you didn't use). See section 7.1.2 http://www.w3.org/TR/xslt#section-Creating-Elements-with-xsl:element << If the namespace attribute is not present then the QName is expanded into an expanded-name using the namespace declarations in effect for the xsl:element element, including any default namespace declaration. >> The namespace with prefix "err" is in scope here. > Incorrcect handling of namespace > -------------------------------- > > Key: XALANJ-2404 > URL: https://issues.apache.org/jira/browse/XALANJ-2404 > Project: XalanJ2 > Issue Type: Bug > Components: XSLTC > Affects Versions: 2.7 > Environment: Windows 2003 Server / XP > Reporter: Robert Strickland > Priority: Critical > > Please find below a description of a critical problem found in Xalan 2.7.0 > related to the handling of namespaces while using compiled XSLTs (i.e. with > XSLT). > > The problem occurs when a set of nodes with namespaces is created in a > template and copied to the output using the xsl:copy-to functionality. The > resulting output does not include the namespace prefixes for the node set > copied to the output. > > Here is an example XSLT: > > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="1.0" xmlns:err="urn:swift:xsd:error.report" > xmlns:test="http://com.swift.sws/test"> > <xsl:output encoding="UTF-8" indent="no" method="xml" version="1.0"/> > > <xsl:template match="/"> > <xsl:element name="test:Result"> > <xsl:variable name="var"> > <xsl:apply-templates select="doc"/> > </xsl:variable> > <xsl:copy-of select="$var"/> > </xsl:element> > </xsl:template> > > <xsl:template match="doc"> > <xsl:element name="err:Error"> > <xsl:element name="err:Reason">content</xsl:element> > </xsl:element> > </xsl:template> > > </xsl:stylesheet> > > This XSLT applied to following XML document: > > <?xml version="1.0" encoding="UTF-8"?> > <doc> > </doc> > > the expected output is: > > <?xml version="1.0" encoding="UTF-8"?> > <test:Result xmlns:test="http://com.swift.sws/test"> > <err:Error xmlns:err="urn:swift:xsd:error.report"> > <err:Reason>content</err:Reason> > </err:Error> > </test:Result> > > This is the result that is obtained with the following transformers: > Java 1.5.0_11 default transformer. > Java 1.6.0_02 default transformer. > Xalan 2.7.0 interpreted > However, when applying the exact same transformation using Xalan 2.7.0 > compiled (with XSLTC), the result is as follows: > > <?xml version="1.0" encoding="UTF-8"?> > <test:Result xmlns:test="http://com.swift.sws/test"> > <Error xmlns:err="urn:swift:xsd:error.report"> > <Reason>content</Reason> > </Error> > </test:Result> > The namespace "urn:swift:xsd:error.report" is correctly defined on the > "Error" element but the "Error" and "Reason" elements have no tag prefix. > This means that these elments belong to the default namespace and not to the > expected namespace "urn:swift:xsd:error.report". The result is therefore > wrong. > > This is a blocking issue for us since this means that it is not possible to > use Xalan 2.7.0 compiled XSLTs. Using Xalan 2.7.0 in translated form is not > an option due to performance reasons. > -- 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]