[ 
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]

Reply via email to