DOM to stream conversion fails on prefix beginning like "xmlConfiguration"
--------------------------------------------------------------------------

                 Key: XALANJ-2361
                 URL: https://issues.apache.org/jira/browse/XALANJ-2361
             Project: XalanJ2
          Issue Type: Bug
          Components: Serialization
    Affects Versions: 2.7
            Reporter: Guillaume Nodet
            Priority: Critical


Here is a simple test case to reproduce the problem:

{{code}}
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        dbf.setNamespaceAware(true);
        TransformerFactory tf = TransformerFactory.newInstance();
        
        String src = "<root><xmlConfiguration:xmlConfiguration 
xmlns:xmlConfiguration=\"urn:configuration\" /></root>";
        Document doc = dbf.newDocumentBuilder().parse(new 
ByteArrayInputStream(src.getBytes()));
        ByteArrayOutputStream res = new ByteArrayOutputStream();
        tf.newTransformer().transform(new DOMSource(doc), new 
StreamResult(res));
        System.out.println(res);
        dbf.newDocumentBuilder().parse(new 
ByteArrayInputStream(res.toByteArray()));
{{code}}

The last line throws an exception, because the xmlns:xmlConfiguration attribute 
has been lost.

While debugging, I found that the problem comes from 
http://svn.apache.org/repos/asf/xalan/java/trunk/src/org/apache/xml/serializer/NamespaceMappings.java,
line 228:

{{code}}
        // Prefixes "xml" and "xmlns" cannot be redefined
        if (prefix.startsWith(XML_PREFIX))
        {
            return false;
        }
{{code}}

It seems this test is wrong, and it should be

{{code}}
        // Prefixes "xml" and "xmlns" cannot be redefined
        if (prefix.equals("xml") || prefix.equals("xmlns")
        {
            return false;
        }
{{code}}


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