/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the  "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*
 * $Id: SerializationHandler.java 471981 2006-11-07 04:28:00Z minchau $
 */
package org.apache.xml.serializer;

import java.io.IOException;

import javax.xml.transform.Transformer;

import org.w3c.dom.Node;
import org.xml.sax.ContentHandler;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.ext.DeclHandler;

This interface is the one that a serializer implements. It is a group of other interfaces, such as ExtendedContentHandler, ExtendedLexicalHandler etc. In addition there are other methods, such as reset(). This class is public only because it is used in another package, it is not a public API.
@xsl.usageinternal
/** * This interface is the one that a serializer implements. It is a group of * other interfaces, such as ExtendedContentHandler, ExtendedLexicalHandler etc. * In addition there are other methods, such as reset(). * * This class is public only because it is used in another package, * it is not a public API. * * @xsl.usage internal */
public interface SerializationHandler extends ExtendedContentHandler, ExtendedLexicalHandler, XSLOutputAttributes, DeclHandler, org.xml.sax.DTDHandler, ErrorHandler, DOMSerializer, Serializer {
Set the SAX Content handler that the serializer sends its output to. This method only applies to a ToSAXHandler, not to a ToStream serializer.
See Also:
/** * Set the SAX Content handler that the serializer sends its output to. This * method only applies to a ToSAXHandler, not to a ToStream serializer. * * @see Serializer#asContentHandler() * @see ToSAXHandler */
public void setContentHandler(ContentHandler ch); public void close();
Notify that the serializer should take this DOM node as input to be serialized.
Params:
  • node – the DOM node to be serialized.
Throws:
/** * Notify that the serializer should take this DOM node as input to be * serialized. * * @param node the DOM node to be serialized. * @throws IOException */
public void serialize(Node node) throws IOException;
Turns special character escaping on/off. Note that characters will never, even if this option is set to 'true', be escaped within CDATA sections in output XML documents.
Params:
  • escape – true if escaping is to be set on.
/** * Turns special character escaping on/off. * * Note that characters will * never, even if this option is set to 'true', be escaped within * CDATA sections in output XML documents. * * @param escape true if escaping is to be set on. */
public boolean setEscaping(boolean escape) throws SAXException;
Set the number of spaces to indent for each indentation level.
Params:
  • spaces – the number of spaces to indent for each indentation level.
/** * Set the number of spaces to indent for each indentation level. * @param spaces the number of spaces to indent for each indentation level. */
public void setIndentAmount(int spaces);
Set the transformer associated with the serializer.
Params:
  • transformer – the transformer associated with the serializer.
/** * Set the transformer associated with the serializer. * @param transformer the transformer associated with the serializer. */
public void setTransformer(Transformer transformer);
Get the transformer associated with the serializer.
Returns:Transformer the transformer associated with the serializer.
/** * Get the transformer associated with the serializer. * @return Transformer the transformer associated with the serializer. */
public Transformer getTransformer();
Used only by TransformerSnapshotImpl to restore the serialization to a previous state.
Params:
  • mappings – NamespaceMappings
/** * Used only by TransformerSnapshotImpl to restore the serialization * to a previous state. * * @param mappings NamespaceMappings */
public void setNamespaceMappings(NamespaceMappings mappings);
A SerializationHandler accepts SAX-like events, so it can accumulate attributes or namespace nodes after a startElement().

If the SerializationHandler has a Writer or OutputStream, a call to this method will flush such accumulated events as a closed start tag for an element.

If the SerializationHandler wraps a ContentHandler, a call to this method will flush such accumulated events as a SAX (not SAX-like) calls to startPrefixMapping() and startElement().

If one calls endDocument() then one need not call this method since a call to endDocument() will do what this method does. However, in some circumstances, such as with document fragments, endDocument() is not called and it may be necessary to call this method to flush any pending events.

For performance reasons this method should not be called very often.

/** * A SerializationHandler accepts SAX-like events, so * it can accumulate attributes or namespace nodes after * a startElement(). * <p> * If the SerializationHandler has a Writer or OutputStream, * a call to this method will flush such accumulated * events as a closed start tag for an element. * <p> * If the SerializationHandler wraps a ContentHandler, * a call to this method will flush such accumulated * events as a SAX (not SAX-like) calls to * startPrefixMapping() and startElement(). * <p> * If one calls endDocument() then one need not call * this method since a call to endDocument() will * do what this method does. However, in some * circumstances, such as with document fragments, * endDocument() is not called and it may be * necessary to call this method to flush * any pending events. * <p> * For performance reasons this method should not be called * very often. */
public void flushPending() throws SAXException;
Default behavior is to expand DTD entities, that is the initall default value is true.
Params:
  • expand – true if DTD entities are to be expanded, false if they are to be left as DTD entity references.
/** * Default behavior is to expand DTD entities, * that is the initall default value is true. * @param expand true if DTD entities are to be expanded, * false if they are to be left as DTD entity references. */
public void setDTDEntityExpansion(boolean expand); }