org.apache.xml.serializer

Interface DOM3Serializer

public interface DOM3Serializer

This interface is not intended to be used by an end user, but rather by an XML parser that is implementing the DOM Level 3 Load and Save APIs.

See the DOM Level 3 Load and Save interface at LSSeializer. For a list of configuration parameters for DOM Level 3 see DOMConfiguration. For additional configuration parameters available with the DOM Level 3 Load and Save API LSSerializer see LSerializer config.

The following example uses a DOM3Serializer indirectly, through an an XML parser that uses this class as part of its implementation of the DOM Level 3 Load and Save APIs, and is the prefered way to serialize with DOM Level 3 APIs.

Example:

    public class TestDOM3 {

    public static void main(String args[]) throws Exception {
        // Get document to serialize
        TestDOM3 test = new TestDOM3();
        
        // Serialize using standard DOM Level 3 Load/Save APIs        
        System.out.println(test.testDOM3LS());
    }

    public org.w3c.dom.Document getDocument() throws Exception {
        // Create a simple DOM Document.
        javax.xml.parsers.DocumentBuilderFactory factory = 
            javax.xml.parsers.DocumentBuilderFactory.newInstance();
        javax.xml.parsers.DocumentBuilder builder = factory.newDocumentBuilder();
        byte[] bytes = "".getBytes();
        java.io.InputStream is = new java.io.ByteArrayInputStream(bytes);
        org.w3c.dom.Document doc = builder.parse(is);
        return doc;
    }
    
    //
    // This method uses standard DOM Level 3 Load Save APIs:
    //   org.w3c.dom.bootstrap.DOMImplementationRegistry
    //   org.w3c.dom.ls.DOMImplementationLS
    //   org.w3c.dom.ls.DOMImplementationLS
    //   org.w3c.dom.ls.LSSerializer
    //   org.w3c.dom.DOMConfiguration
    //   
    // The only thing non-standard in this method is the value set for the
    // name of the class implementing the DOM Level 3 Load Save APIs,
    // which in this case is:
    //   org.apache.xerces.dom.DOMImplementationSourceImpl
    //

    public String testDOM3LS() throws Exception {
        
        // Get a simple DOM Document that will be serialized.
        org.w3c.dom.Document docToSerialize = getDocument();

        // Get a factory (DOMImplementationLS) for creating a Load and Save object.
        org.w3c.dom.ls.DOMImplementationLS impl = 
            (org.w3c.dom.ls.DOMImplementationLS) 
            org.w3c.dom.bootstrap.DOMImplementationRegistry.newInstance().getDOMImplementation("LS");

        // Use the factory to create an object (LSSerializer) used to 
        // write out or save the document.
        org.w3c.dom.ls.LSSerializer writer = impl.createLSSerializer();
        org.w3c.dom.DOMConfiguration config = writer.getDomConfig();
        config.setParameter("format-pretty-print", Boolean.TRUE);
        
        // Use the LSSerializer to write out or serialize the document to a String.
        String serializedXML = writer.writeToString(docToSerialize);
        return serializedXML;
    }
    
    }  // end of class TestDOM3
 

See Also: DOMConfiguration LSSerializer Serializer

UNKNOWN: advanced

Method Summary
DOMErrorHandlergetErrorHandler()
Returns a DOMErrorHandler set on the DOM Level 3 Serializer.
LSSerializerFiltergetNodeFilter()
Returns a LSSerializerFilter set on the DOM Level 3 Serializer to filter nodes during serialization.
voidserializeDOM3(Node node)
Serializes the Level 3 DOM node.
voidsetErrorHandler(DOMErrorHandler handler)
Sets a DOMErrorHandler on the DOM Level 3 Serializer.
voidsetNewLine(char[] newLine)
Sets the end-of-line sequence of characters to be used during serialization
voidsetNodeFilter(LSSerializerFilter filter)
Sets a LSSerializerFilter on the DOM Level 3 Serializer to filter nodes during serialization.

Method Detail

getErrorHandler

public DOMErrorHandler getErrorHandler()
Returns a DOMErrorHandler set on the DOM Level 3 Serializer. This interface is a public API.

Returns: A Level 3 DOMErrorHandler

getNodeFilter

public LSSerializerFilter getNodeFilter()
Returns a LSSerializerFilter set on the DOM Level 3 Serializer to filter nodes during serialization. This interface is a public API.

Returns: The Level 3 LSSerializerFilter

serializeDOM3

public void serializeDOM3(Node node)
Serializes the Level 3 DOM node. Throws an exception only if an I/O exception occured while serializing. This interface is a public API.

Parameters: node the Level 3 DOM node to serialize

Throws: IOException if an I/O exception occured while serializing

setErrorHandler

public void setErrorHandler(DOMErrorHandler handler)
Sets a DOMErrorHandler on the DOM Level 3 Serializer. This interface is a public API.

Parameters: handler the Level 3 DOMErrorHandler

setNewLine

public void setNewLine(char[] newLine)
Sets the end-of-line sequence of characters to be used during serialization

Parameters: newLine The end-of-line sequence of characters to be used during serialization

setNodeFilter

public void setNodeFilter(LSSerializerFilter filter)
Sets a LSSerializerFilter on the DOM Level 3 Serializer to filter nodes during serialization. This interface is a public API.

Parameters: filter the Level 3 LSSerializerFilter

Copyright B) 2006 Apache XML Project. All Rights Reserved.