Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.xml.serialize.transition
Class BaseMarkupSerializer

    java.lang.Object
      |
      +--org.apache.xml.serialize.transition.BaseMarkupSerializer

Direct Known Subclasses:
  HTMLSerializer, TextSerializer, XMLSerializer

public abstract class BaseMarkupSerializer
extends java.lang.Object
implements ContentHandler, DocumentHandler, org.xml.sax.ext.LexicalHandler, DTDHandler, org.xml.sax.ext.DeclHandler, DOMSerializer, Serializer, SerializerHandler

Base class for a serializer supporting both DOM and SAX pretty serializing of XML/HTML/XHTML documents. Derives classes perform the method-specific serializing, this class provides the common serializing mechanisms.

The serializer must be initialized with the proper writer and output format before it can be used by calling `#init`. The serializer can be reused any number of times, but cannot be used concurrently by two threads.

If an output stream is used, the encoding is taken from the output format (defaults to `UTF-8`). If a writer is used, make sure the writer uses the same encoding (if applies) as specified in the output format.

The serializer supports both DOM and SAX. DOM serializing is done by calling `serialize(org.w3c.dom.Element)` and SAX serializing is done by firing SAX events and using the serializer as a document handler. This also applies to derived class.

If an I/O exception occurs while serializing, the serializer will not throw an exception directly, but only throw it at the end of serializing (either DOM or SAX's `DocumentHandler.endDocument()`.

For elements that are not specified as whitespace preserving, the serializer will potentially break long text lines at space boundaries, indent lines, and serialize elements on separate lines. Line terminators will be regarded as spaces, and spaces at beginning of line will be stripped.

When indenting, the serializer is capable of detecting seemingly element content, and serializing these elements indented on separate lines. An element is serialized indented when it is the first or last child of an element, or immediate following or preceding another element.

See Also:
  `Serializer`, `DOMSerializer`

Method Summary
`ContentHandler` | `asContentHandler()`
`DocumentHandler` | `asDocumentHandler()`
`DOMSerializer` | `asDOMSerializer()`
`void` | `attributeDecl(java.lang.String eName, java.lang.String aName, java.lang.String type, java.lang.String valueDefault, java.lang.String value)`
`void` | `characters(char[] chars, int start, int length)`
`void` | `comment(char[] chars, int start, int length)`
`void` | `comment(java.lang.String text)`
`void` | `elementDecl(java.lang.String name, java.lang.String model)`
`void` | `endCDATA()`
`void` | `endDocument()` Called at the end of the document to wrap it up.
`void` | `endDTD()`
`void` | `endEntity(java.lang.String name)`
`void` | `endNonEscaping()`
`void` | `endPrefixMapping(java.lang.String prefix)`
`void` | `endPreserving()`
`void` | `externalEntityDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId)`
`OutputFormat` | `getOutputFormat()` Returns the output format for this serializer.
`java.io.OutputStream` | `getOutputStream()`
`java.io.Writer` | `getWriter()`
`void` | `ignorableWhitespace(char[] chars, int start, int length)`
`void` | `internalEntityDecl(java.lang.String name, java.lang.String value)`
`void` | `notationDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId)`
`void` | `processingInstruction(java.lang.String target, java.lang.String code)`
`boolean` | `reset()`
`void` | `serialize(Document doc)` Serializes the DOM document using the previously specified writer and output format.
`void` | `serialize(DocumentFragment frag)` Serializes the DOM document fragmnt using the previously specified writer and output format.
`void` | `serialize(Element elem)` Serializes the DOM element using the previously specified writer and output format.
`void` | `serializeXPathReturnNode(Node node)` Serialize a node from the node-set value returned by an XPath expression.
`void` | `setDocumentLocator(Locator locator)`
`void` | `setOutputFormat(OutputFormat format)` Specifies an output format for this serializer.
`void` | `setOutputStream(java.io.OutputStream output)` Specifies an output stream to which the document should be serialized.
`void` | `setWriter(java.io.Writer writer)` Specifies a writer to which the document should be serialized.
`void` | `skippedEntity(java.lang.String name)`
`void` | `startCDATA()`
`void` | `startDocument()`
`void` | `startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)`
`void` | `startEntity(java.lang.String name)`
`void` | `startNonEscaping()`
`void` | `startPrefixMapping(java.lang.String prefix, java.lang.String uri)`
`void` | `startPreserving()`
`void` | `unparsedEntityDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId, java.lang.String notationName)`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### asDocumentHandler

    public DocumentHandler asDocumentHandler()
                                      throws java.io.IOException

  Specified by:
    asDocumentHandler in interface Serializer

### asContentHandler

    public ContentHandler asContentHandler()
                                    throws java.io.IOException

  Specified by:
    asContentHandler in interface Serializer

### asDOMSerializer

    public DOMSerializer asDOMSerializer()
                                  throws java.io.IOException

  Specified by:
    asDOMSerializer in interface Serializer

### setOutputStream

    public void setOutputStream(java.io.OutputStream output)

  Specifies an output stream to which the document should be serialized. This method should not be called while the serializer is in the process of serializing a document.

  The encoding specified in the `OutputFormat` is used, or if no encoding was specified, the default for the selected output method.

  Specified by:
    setOutputStream in interface Serializer
  Parameters:
    `output` - The output stream

### getOutputStream

    public java.io.OutputStream getOutputStream()

  Specified by:
    getOutputStream in interface Serializer

### setWriter

    public void setWriter(java.io.Writer writer)

  Specifies a writer to which the document should be serialized. This method should not be called while the serializer is in the process of serializing a document.

  The encoding specified for the `OutputFormat` must be identical to the output format used with the writer.

  Specified by:
    setWriter in interface Serializer
  Parameters:
    `writer` - The output writer stream

### getWriter

    public java.io.Writer getWriter()

  Specified by:
    getWriter in interface Serializer

### setOutputFormat

    public void setOutputFormat(OutputFormat format)

  Specifies an output format for this serializer. It the serializer has already been associated with an output format, it will switch to the new format. This method should not be called while the serializer is in the process of serializing a document.
  Specified by:
    setOutputFormat in interface Serializer
  Parameters:
    `format` - The output format to use

### getOutputFormat

    public OutputFormat getOutputFormat()

  Returns the output format for this serializer.
  Specified by:
    getOutputFormat in interface Serializer
  Returns:
    The output format in use

### reset

    public boolean reset()

  Specified by:
    reset in interface Serializer

### serialize

    public void serialize(Element elem)
                   throws java.io.IOException

  Serializes the DOM element using the previously specified writer and output format. Throws an exception only if an I/O exception occured while serializing.
  Specified by:
    serialize in interface DOMSerializer
  Parameters:
    `elem` - The element to serialize
  Throws:
    java.io.IOException - An I/O exception occured while serializing

### serialize

    public void serialize(DocumentFragment frag)
                   throws java.io.IOException

  Serializes the DOM document fragmnt using the previously specified writer and output format. Throws an exception only if an I/O exception occured while serializing.
  Specified by:
    serialize in interface DOMSerializer
  Parameters:
    `elem` - The element to serialize
  Throws:
    java.io.IOException - An I/O exception occured while serializing

### serialize

    public void serialize(Document doc)
                   throws java.io.IOException

  Serializes the DOM document using the previously specified writer and output format. Throws an exception only if an I/O exception occured while serializing.
  Specified by:
    serialize in interface DOMSerializer
  Parameters:
    `doc` - The document to serialize
  Throws:
    java.io.IOException - An I/O exception occured while serializing

### startDocument

    public void startDocument()
                       throws SAXException

  Specified by:
    startDocument in interface ContentHandler

### characters

    public void characters(char[] chars,
                           int start,
                           int length)

  Specified by:
    characters in interface ContentHandler

### ignorableWhitespace

    public void ignorableWhitespace(char[] chars,
                                    int start,
                                    int length)

  Specified by:
    ignorableWhitespace in interface ContentHandler

### processingInstruction

    public void processingInstruction(java.lang.String target,
                                      java.lang.String code)

  Specified by:
    processingInstruction in interface ContentHandler

### comment

    public void comment(char[] chars,
                        int start,
                        int length)

  Specified by:
    comment in interface org.xml.sax.ext.LexicalHandler

### comment

    public void comment(java.lang.String text)

### startCDATA

    public void startCDATA()

  Specified by:
    startCDATA in interface org.xml.sax.ext.LexicalHandler

### endCDATA

    public void endCDATA()

  Specified by:
    endCDATA in interface org.xml.sax.ext.LexicalHandler

### startNonEscaping

    public void startNonEscaping()

  Specified by:
    startNonEscaping in interface SerializerHandler

### endNonEscaping

    public void endNonEscaping()

  Specified by:
    endNonEscaping in interface SerializerHandler

### startPreserving

    public void startPreserving()

  Specified by:
    startPreserving in interface SerializerHandler

### endPreserving

    public void endPreserving()

  Specified by:
    endPreserving in interface SerializerHandler

### endDocument

    public void endDocument()
                     throws SAXException

  Called at the end of the document to wrap it up. Will flush the output stream and throw an exception if any I/O error occured while serializing.
  Specified by:
    endDocument in interface ContentHandler
  Throws:
    SAXException - An I/O exception occured during serializing

### startEntity

    public void startEntity(java.lang.String name)

  Specified by:
    startEntity in interface org.xml.sax.ext.LexicalHandler

### endEntity

    public void endEntity(java.lang.String name)

  Specified by:
    endEntity in interface org.xml.sax.ext.LexicalHandler

### setDocumentLocator

    public void setDocumentLocator(Locator locator)

  Specified by:
    setDocumentLocator in interface ContentHandler

### skippedEntity

    public void skippedEntity(java.lang.String name)
                       throws SAXException

  Specified by:
    skippedEntity in interface ContentHandler

### startPrefixMapping

    public void startPrefixMapping(java.lang.String prefix,
                                   java.lang.String uri)
                            throws SAXException

  Specified by:
    startPrefixMapping in interface ContentHandler

### endPrefixMapping

    public void endPrefixMapping(java.lang.String prefix)
                          throws SAXException

  Specified by:
    endPrefixMapping in interface ContentHandler

### startDTD

    public void startDTD(java.lang.String name,
                         java.lang.String publicId,
                         java.lang.String systemId)

  Specified by:
    startDTD in interface org.xml.sax.ext.LexicalHandler

### endDTD

    public void endDTD()

  Specified by:
    endDTD in interface org.xml.sax.ext.LexicalHandler

### elementDecl

    public void elementDecl(java.lang.String name,
                            java.lang.String model)

  Specified by:
    elementDecl in interface org.xml.sax.ext.DeclHandler

### attributeDecl

    public void attributeDecl(java.lang.String eName,
                              java.lang.String aName,
                              java.lang.String type,
                              java.lang.String valueDefault,
                              java.lang.String value)

  Specified by:
    attributeDecl in interface org.xml.sax.ext.DeclHandler

### internalEntityDecl

    public void internalEntityDecl(java.lang.String name,
                                   java.lang.String value)

  Specified by:
    internalEntityDecl in interface org.xml.sax.ext.DeclHandler

### externalEntityDecl

    public void externalEntityDecl(java.lang.String name,
                                   java.lang.String publicId,
                                   java.lang.String systemId)

  Specified by:
    externalEntityDecl in interface org.xml.sax.ext.DeclHandler

### unparsedEntityDecl

    public void unparsedEntityDecl(java.lang.String name,
                                   java.lang.String publicId,
                                   java.lang.String systemId,
                                   java.lang.String notationName)

  Specified by:
    unparsedEntityDecl in interface DTDHandler

### notationDecl

    public void notationDecl(java.lang.String name,
                             java.lang.String publicId,
                             java.lang.String systemId)

  Specified by:
    notationDecl in interface DTDHandler

### serializeXPathReturnNode

    public void serializeXPathReturnNode(Node node)
                                  throws java.io.IOException

  Serialize a node from the node-set value returned by an XPath expression.
  Parameters:
    `node` - The node to serialize

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000 Apache XML Project. All Rights Reserved.