DOM Level 3 serializer APIs give incorrect encoding (UTF-16)
------------------------------------------------------------

                 Key: XALANJ-2338
                 URL: http://issues.apache.org/jira/browse/XALANJ-2338
             Project: XalanJ2
          Issue Type: Bug
          Components: Serialization
    Affects Versions: Latest Development Code
            Reporter: Brian Minchau


When the following testcase is run with Xerces (with a patch to use the new DOM 
Level 3 APIs under the covers) the output encoding shows as UTF-16, but should 
probably be UTF-8.

Here is the testcase:

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.apache.xml.serializer.DOM3Serializer;
import org.apache.xml.serializer.OutputPropertiesFactory;
import org.apache.xml.serializer.Serializer;
import org.apache.xml.serializer.SerializerFactory;
import org.w3c.dom.DOMConfiguration;
import org.w3c.dom.Document;
import org.w3c.dom.bootstrap.DOMImplementationRegistry;
import org.w3c.dom.ls.DOMImplementationLS;
import org.w3c.dom.ls.LSSerializer;

public class TestDOM3 {

    public static void main(String args[]) throws Exception {
        TestDOM3 test = new TestDOM3();
        System.out.println(test.testDOM3LS());

    }
    
    public Document getDocument() throws Exception {
        Document doc = null;

        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        byte[] bytes = "<parent><child/></parent>".getBytes();
        java.io.InputStream is = new java.io.ByteArrayInputStream(bytes);
        doc = builder.parse(is);

        return doc;
    }

    public String testDOM3LS() throws Exception {
        Document doc = getDocument();

        System.setProperty(DOMImplementationRegistry.PROPERTY,
                "org.apache.xerces.dom.DOMImplementationSourceImpl");

        DOMImplementationLS impl = (DOMImplementationLS) 
DOMImplementationRegistry
                .newInstance().getDOMImplementation("LS");
        LSSerializer writer = impl.createLSSerializer();

        DOMConfiguration config = writer.getDomConfig();
        config.setParameter("format-pretty-print", Boolean.TRUE);
        return writer.writeToString(doc);

    }
  
}


Here is the output:

<?xml version="1.0" encoding="UTF-16"?><parent><child/></parent>


-- 
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
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to