org.apache.xml.serializer

## 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`
  Usage:
    **For advanced use only**

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and 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

Copyright © 2023 Apache XML Project. All Rights Reserved.