org.apache.xml.serialize

## Class DOMSerializerImpl

- java.lang.Object
- - org.apache.xml.serialize.DOMSerializerImpl

- All Implemented Interfaces:
    org.w3c.dom.DOMConfiguration, org.w3c.dom.ls.LSSerializer

  Deprecated.
  Replaced by org.apache.xml.serializer.dom3.LSSerializerImpl in Xerces 2.9.0.

      public class DOMSerializerImpl
      extends java.lang.Object
      implements org.w3c.dom.ls.LSSerializer, org.w3c.dom.DOMConfiguration

  EXPERIMENTAL: Implemenatation of DOM Level 3 org.w3c.ls.LSSerializer by delegating serialization calls to `XMLSerializer`. LSSerializer provides an API for serializing (writing) a DOM document out in an XML document. The XML data is written to an output stream. During serialization of XML data, namespace fixup is done when possible as defined in DOM Level 3 Core, Appendix B.
  Version:
    $Id: DOMSerializerImpl.java 944789 2010-05-16 10:06:57Z mukulg $
  Author:
    Elena Litani, IBM, Gopal Sharma, Sun Microsystems, Arun Yadav, Sun Microsystems

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static short` | `CDATA` Deprecated.
    `protected static short` | `COMMENTS` Deprecated.
    `protected static short` | `DISCARDDEFAULT` Deprecated.
    `protected static short` | `DOM_ELEMENT_CONTENT_WHITESPACE` Deprecated.
    `protected static short` | `ENTITIES` Deprecated.
    `protected short` | `features` Deprecated. REVISIT: Currently we handle 3 different configurations, would be nice just have one configuration that has different recognized parameters depending if it is used in Core/LS.
    `protected static short` | `INFOSET` Deprecated.
    `protected static short` | `NAMESPACES` Deprecated.
    `protected static short` | `NSDECL` Deprecated.
    `protected static short` | `PRETTY_PRINT` Deprecated.
    `protected static short` | `SPLITCDATA` Deprecated.
    `protected static short` | `WELLFORMED` Deprecated.
    `protected static short` | `XMLDECL` Deprecated.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DOMSerializerImpl()` Deprecated. Constructs a new LSSerializer.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `canSetParameter(java.lang.String name, java.lang.Object state)` Deprecated. DOM L3-EXPERIMENTAL: Check if parameter can be set
    `org.w3c.dom.DOMConfiguration` | `getDomConfig()` Deprecated. The `DOMConfiguration` object used by the `LSSerializer` when serializing a DOM node.
    `org.w3c.dom.ls.LSSerializerFilter` | `getFilter()` Deprecated. When the application provides a filter, the serializer will call out to the filter before serializing each Node.
    `java.lang.String` | `getNewLine()` Deprecated. DOM L3 EXPERIMENTAL: The end-of-line sequence of characters to be used in the XML being written out.
    `java.lang.Object` | `getParameter(java.lang.String name)` Deprecated. DOM L3-EXPERIMENTAL: Getter for boolean and object parameters
    `org.w3c.dom.DOMStringList` | `getParameterNames()` Deprecated. DOM Level 3 Core CR - Experimental.
    `void` | `setFilter(org.w3c.dom.ls.LSSerializerFilter filter)` Deprecated. When the application provides a filter, the serializer will call out to the filter before serializing each Node.
    `void` | `setNewLine(java.lang.String newLine)` Deprecated. DOM L3 EXPERIMENTAL: The end-of-line sequence of characters to be used in the XML being written out.
    `void` | `setParameter(java.lang.String name, java.lang.Object value)` Deprecated. DOM L3-EXPERIMENTAL: Setter for boolean and object parameters
    `boolean` | `write(org.w3c.dom.Node node, org.w3c.dom.ls.LSOutput destination)` Deprecated. Serialize the specified node as described above in the general description of the `LSSerializer` interface.
    `java.lang.String` | `writeToString(org.w3c.dom.Node wnode)` Deprecated. DOM L3 EXPERIMENTAL: Serialize the specified node as described above in the description of `LSSerializer`.
    `boolean` | `writeToURI(org.w3c.dom.Node node, java.lang.String URI)` Deprecated. Serialize the specified node as described above in the general description of the `LSSerializer` interface.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### features

          protected short features

      Deprecated.
      REVISIT: Currently we handle 3 different configurations, would be nice just have one configuration that has different recognized parameters depending if it is used in Core/LS.

    - #### NAMESPACES

          protected static final short NAMESPACES

      Deprecated.
      See Also:
        Constant Field Values

    - #### WELLFORMED

          protected static final short WELLFORMED

      Deprecated.
      See Also:
        Constant Field Values

    - #### ENTITIES

          protected static final short ENTITIES

      Deprecated.
      See Also:
        Constant Field Values

    - #### CDATA

          protected static final short CDATA

      Deprecated.
      See Also:
        Constant Field Values

    - #### SPLITCDATA

          protected static final short SPLITCDATA

      Deprecated.
      See Also:
        Constant Field Values

    - #### COMMENTS

          protected static final short COMMENTS

      Deprecated.
      See Also:
        Constant Field Values

    - #### DISCARDDEFAULT

          protected static final short DISCARDDEFAULT

      Deprecated.
      See Also:
        Constant Field Values

    - #### INFOSET

          protected static final short INFOSET

      Deprecated.
      See Also:
        Constant Field Values

    - #### XMLDECL

          protected static final short XMLDECL

      Deprecated.
      See Also:
        Constant Field Values

    - #### NSDECL

          protected static final short NSDECL

      Deprecated.
      See Also:
        Constant Field Values

    - #### DOM_ELEMENT_CONTENT_WHITESPACE

          protected static final short DOM_ELEMENT_CONTENT_WHITESPACE

      Deprecated.
      See Also:
        Constant Field Values

    - #### PRETTY_PRINT

          protected static final short PRETTY_PRINT

      Deprecated.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### DOMSerializerImpl

          public DOMSerializerImpl()

      Deprecated.
      Constructs a new LSSerializer. The constructor turns on the namespace support in `XMLSerializer` and initializes the following fields: fNSBinder, fLocalNSBinder, fSymbolTable, fEmptySymbol, fXmlSymbol, fXmlnsSymbol, fNamespaceCounter, fFeatures.

  - ### Method Detail

    - #### getDomConfig

          public org.w3c.dom.DOMConfiguration getDomConfig()

      Deprecated.
      Description copied from interface: `org.w3c.dom.ls.LSSerializer`
      The `DOMConfiguration` object used by the `LSSerializer` when serializing a DOM node.
      In addition to the parameters recognized by the DOMConfiguration interface defined in [DOM Level 3 Core] , the `DOMConfiguration` objects for `LSSerializer` adds, or modifies, the following parameters:
      `"canonical-form"`
        `true`
          [optional] Writes the document according to the rules specified in [Canonical XML]. In addition to the behavior described in " canonical-form" [DOM Level 3 Core] , setting this parameter to `true` will set the parameters "format-pretty-print", "discard-default-content", and "xml-declaration ", to `false`. Setting one of those parameters to `true` will set this parameter to `false`. Serializing an XML 1.1 document when "canonical-form" is `true` will generate a fatal error.
        `false`
          [required] (default) Do not canonicalize the output.
      `"discard-default-content"`
        `true`
          [required] (default) Use the `Attr.specified` attribute to decide what attributes should be discarded. Note that some implementations might use whatever information available to the implementation (i.e. XML schema, DTD, the `Attr.specified` attribute, and so on) to determine what attributes and content to discard if this parameter is set to `true`.
        `false`
          [required]Keep all attributes and all content.
      `"format-pretty-print"`
        `true`
          [optional] Formatting the output by adding whitespace to produce a pretty-printed, indented, human-readable form. The exact form of the transformations is not specified by this specification. Pretty-printing changes the content of the document and may affect the validity of the document, validating implementations should preserve validity.
        `false`
          [required] (default) Don't pretty-print the result.
      `"ignore-unknown-character-denormalizations"`
        `true`
          [required] (default) If, while verifying full normalization when [XML 1.1] is supported, a character is encountered for which the normalization properties cannot be determined, then raise a `"unknown-character-denormalization"` warning (instead of raising an error, if this parameter is not set) and ignore any possible denormalizations caused by these characters.
        `false`
          [optional] Report a fatal error if a character is encountered for which the processor cannot determine the normalization properties.
      `"normalize-characters"`
        This parameter is equivalent to the one defined by `DOMConfiguration` in [DOM Level 3 Core] . Unlike in the Core, the default value for this parameter is `true`. While DOM implementations are not required to support fully normalizing the characters in the document according to appendix E of [XML 1.1], this parameter must be activated by default if supported.
      `"xml-declaration"`
        `true`
          [required] (default) If a `Document`, `Element`, or `Entity` node is serialized, the XML declaration, or text declaration, should be included. The version (`Document.xmlVersion` if the document is a Level 3 document and the version is non-null, otherwise use the value "1.0"), and the output encoding (see `LSSerializer.write` for details on how to find the output encoding) are specified in the serialized XML declaration.
        `false`
          [required] Do not serialize the XML and text declarations. Report a `"xml-declaration-needed"` warning if this will cause problems (i.e. the serialized data is of an XML version other than [XML 1.0], or an encoding would be needed to be able to re-parse the serialized data).
      Specified by:
        `getDomConfig` in interface `org.w3c.dom.ls.LSSerializer`

    - #### setParameter

          public void setParameter(java.lang.String name,
                          java.lang.Object value)
                            throws org.w3c.dom.DOMException

      Deprecated.
      DOM L3-EXPERIMENTAL: Setter for boolean and object parameters
      Specified by:
        `setParameter` in interface `org.w3c.dom.DOMConfiguration`
      Parameters:
        `name` - The name of the parameter to set.
        `value` - The new value or `null` if the user wishes to unset the parameter. While the type of the value parameter is defined as `DOMUserData`, the object type must match the type defined by the definition of the parameter. For example, if the parameter is "error-handler", the value must be of type `DOMErrorHandler`.
      Throws:
        `org.w3c.dom.DOMException` - NOT_FOUND_ERR: Raised when the parameter name is not recognized.
        NOT_SUPPORTED_ERR: Raised when the parameter name is recognized but the requested value cannot be set.
        TYPE_MISMATCH_ERR: Raised if the value type for this parameter name is incompatible with the expected value type.

    - #### canSetParameter

          public boolean canSetParameter(java.lang.String name,
                                java.lang.Object state)

      Deprecated.
      DOM L3-EXPERIMENTAL: Check if parameter can be set
      Specified by:
        `canSetParameter` in interface `org.w3c.dom.DOMConfiguration`
      Parameters:
        `name` - The name of the parameter to check.
        `state` - An object. if `null`, the returned value is `true`.
      Returns:
        `true` if the parameter could be successfully set to the specified value, or `false` if the parameter is not recognized or the requested value is not supported. This does not change the current value of the parameter itself.

    - #### getParameterNames

          public org.w3c.dom.DOMStringList getParameterNames()

      Deprecated.
      DOM Level 3 Core CR - Experimental. The list of the parameters supported by this `DOMConfiguration` object and for which at least one value can be set by the application. Note that this list can also contain parameter names defined outside this specification.
      Specified by:
        `getParameterNames` in interface `org.w3c.dom.DOMConfiguration`

    - #### getParameter

          public java.lang.Object getParameter(java.lang.String name)
                                        throws org.w3c.dom.DOMException

      Deprecated.
      DOM L3-EXPERIMENTAL: Getter for boolean and object parameters
      Specified by:
        `getParameter` in interface `org.w3c.dom.DOMConfiguration`
      Parameters:
        `name` - The name of the parameter.
      Returns:
        The current object associated with the specified parameter or `null` if no object has been associated or if the parameter is not supported.
      Throws:
        `org.w3c.dom.DOMException` - NOT_FOUND_ERR: Raised when the parameter name is not recognized.

    - #### writeToString

          public java.lang.String writeToString(org.w3c.dom.Node wnode)
                                         throws org.w3c.dom.DOMException,
                                                org.w3c.dom.ls.LSException

      Deprecated.
      DOM L3 EXPERIMENTAL: Serialize the specified node as described above in the description of `LSSerializer`. The result of serializing the node is returned as a string. Writing a Document or Entity node produces a serialized form that is well formed XML. Writing other node types produces a fragment of text in a form that is not fully defined by this document, but that should be useful to a human for debugging or diagnostic purposes.
      Specified by:
        `writeToString` in interface `org.w3c.dom.ls.LSSerializer`
      Parameters:
        `wnode` - The node to be written.
      Returns:
        Returns the serialized data
      Throws:
        `org.w3c.dom.DOMException` - DOMSTRING_SIZE_ERR: The resulting string is too long to fit in a `DOMString`.
        `org.w3c.dom.ls.LSException` - SERIALIZE_ERR: Unable to serialize the node. DOM applications should attach a `DOMErrorHandler` using the parameter "error-handler" to get details on error.

    - #### setNewLine

          public void setNewLine(java.lang.String newLine)

      Deprecated.
      DOM L3 EXPERIMENTAL: The end-of-line sequence of characters to be used in the XML being written out. The only permitted values are these:
      `null`
        Use a default end-of-line sequence. DOM implementations should choose the default to match the usual convention for text files in the environment being used. Implementations must choose a default sequence that matches one of those allowed by 2.11 "End-of-Line Handling".
      CR
        The carriage-return character (#xD).
      CR-LF
        The carriage-return and line-feed characters (#xD #xA).
      LF
        The line-feed character (#xA).
      The default value for this attribute is `null`.
      Specified by:
        `setNewLine` in interface `org.w3c.dom.ls.LSSerializer`

    - #### getNewLine

          public java.lang.String getNewLine()

      Deprecated.
      DOM L3 EXPERIMENTAL: The end-of-line sequence of characters to be used in the XML being written out. The only permitted values are these:
      `null`
        Use a default end-of-line sequence. DOM implementations should choose the default to match the usual convention for text files in the environment being used. Implementations must choose a default sequence that matches one of those allowed by 2.11 "End-of-Line Handling".
      CR
        The carriage-return character (#xD).
      CR-LF
        The carriage-return and line-feed characters (#xD #xA).
      LF
        The line-feed character (#xA).
      The default value for this attribute is `null`.
      Specified by:
        `getNewLine` in interface `org.w3c.dom.ls.LSSerializer`

    - #### getFilter

          public org.w3c.dom.ls.LSSerializerFilter getFilter()

      Deprecated.
      When the application provides a filter, the serializer will call out to the filter before serializing each Node. Attribute nodes are never passed to the filter. The filter implementation can choose to remove the node from the stream or to terminate the serialization early.
      Specified by:
        `getFilter` in interface `org.w3c.dom.ls.LSSerializer`

    - #### setFilter

          public void setFilter(org.w3c.dom.ls.LSSerializerFilter filter)

      Deprecated.
      When the application provides a filter, the serializer will call out to the filter before serializing each Node. Attribute nodes are never passed to the filter. The filter implementation can choose to remove the node from the stream or to terminate the serialization early.
      Specified by:
        `setFilter` in interface `org.w3c.dom.ls.LSSerializer`

    - #### write

          public boolean write(org.w3c.dom.Node node,
                      org.w3c.dom.ls.LSOutput destination)
                        throws org.w3c.dom.ls.LSException

      Deprecated.
      Serialize the specified node as described above in the general description of the `LSSerializer` interface. The output is written to the supplied `LSOutput`.
      When writing to a `LSOutput`, the encoding is found by looking at the encoding information that is reachable through the `LSOutput` and the item to be written (or its owner document) in this order:
      1. `LSOutput.encoding`,
      2. `Document.actualEncoding`,
      3. `Document.xmlEncoding`.
      If no encoding is reachable through the above properties, a default encoding of "UTF-8" will be used.
      If the specified encoding is not supported an "unsupported-encoding" error is raised.
      If no output is specified in the `LSOutput`, a "no-output-specified" error is raised.
      Specified by:
        `write` in interface `org.w3c.dom.ls.LSSerializer`
      Parameters:
        `node` - The node to serialize.
        `destination` - The destination for the serialized DOM.
      Returns:
        Returns `true` if `node` was successfully serialized and `false` in case the node couldn't be serialized.
      Throws:
        `org.w3c.dom.ls.LSException` - SERIALIZE_ERR: Raised if the `LSSerializer` was unable to serialize the node. DOM applications should attach a `DOMErrorHandler` using the parameter " error-handler" if they wish to get details on the error.

    - #### writeToURI

          public boolean writeToURI(org.w3c.dom.Node node,
                           java.lang.String URI)
                             throws org.w3c.dom.ls.LSException

      Deprecated.
      Serialize the specified node as described above in the general description of the `LSSerializer` interface. The output is written to the supplied URI.
      When writing to a URI, the encoding is found by looking at the encoding information that is reachable through the item to be written (or its owner document) in this order:
      1. `Document.inputEncoding`,
      2. `Document.xmlEncoding`.
      If no encoding is reachable through the above properties, a default encoding of "UTF-8" will be used.
      If the specified encoding is not supported an "unsupported-encoding" error is raised.
      Specified by:
        `writeToURI` in interface `org.w3c.dom.ls.LSSerializer`
      Parameters:
        `node` - The node to serialize.
        `URI` - The URI to write to.
      Returns:
        Returns `true` if `node` was successfully serialized and `false` in case the node couldn't be serialized.
      Throws:
        `org.w3c.dom.ls.LSException` - SERIALIZE_ERR: Raised if the `LSSerializer` was unable to serialize the node. DOM applications should attach a `DOMErrorHandler` using the parameter " error-handler" if they wish to get details on the error.

Copyright © 1999-2022 The Apache Software Foundation. All Rights Reserved.