Interface DOM3Serializer

  • All Known Implementing Classes:
    DOM3SerializerImpl

    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, DOMSerializer
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      org.w3c.dom.DOMErrorHandler getErrorHandler()
      Returns a DOMErrorHandler set on the DOM Level 3 Serializer.
      org.w3c.dom.ls.LSSerializerFilter getNodeFilter()
      Returns a LSSerializerFilter set on the DOM Level 3 Serializer to filter nodes during serialization.
      void serializeDOM3​(org.w3c.dom.Node node)
      Serializes the Level 3 DOM node.
      void setErrorHandler​(org.w3c.dom.DOMErrorHandler handler)
      Sets a DOMErrorHandler on the DOM Level 3 Serializer.
      void setNewLine​(char[] newLine)
      Sets the end-of-line sequence of characters to be used during serialization
      void setNodeFilter​(org.w3c.dom.ls.LSSerializerFilter filter)
      Sets a LSSerializerFilter on the DOM Level 3 Serializer to filter nodes during serialization.
    • Method Detail

      • serializeDOM3

        void serializeDOM3​(org.w3c.dom.Node node)
                    throws java.io.IOException
        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:
        java.io.IOException - if an I/O exception occured while serializing
      • setErrorHandler

        void setErrorHandler​(org.w3c.dom.DOMErrorHandler handler)
        Sets a DOMErrorHandler on the DOM Level 3 Serializer. This interface is a public API.
        Parameters:
        handler - the Level 3 DOMErrorHandler
      • getErrorHandler

        org.w3c.dom.DOMErrorHandler getErrorHandler()
        Returns a DOMErrorHandler set on the DOM Level 3 Serializer. This interface is a public API.
        Returns:
        A Level 3 DOMErrorHandler
      • setNodeFilter

        void setNodeFilter​(org.w3c.dom.ls.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
      • getNodeFilter

        org.w3c.dom.ls.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
      • setNewLine

        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