Serializerpublic interface Serializer The Serializer interface is implemented by a serializer to enable users to:
- get and set streams or writers
- configure the serializer with key/value properties
- get an org.xml.sax.ContentHandler or a DOMSerializer to provide input to
Here is an example using the asContentHandler() method:
java.util.Properties props =
OutputPropertiesFactory.getDefaultMethodProperties(Method.TEXT);
Serializer ser = SerializerFactory.getSerializer(props);
java.io.PrintStream ostream = System.out;
ser.setOutputStream(ostream);
// Provide the SAX input events
ContentHandler handler = ser.asContentHandler();
handler.startDocument();
char[] chars = { 'a', 'b', 'c' };
handler.characters(chars, 0, chars.length);
handler.endDocument();
ser.reset(); // get ready to use the serializer for another document
// of the same output method (TEXT).
As an alternate to supplying a series of SAX events as input through the
ContentHandler interface, the input to serialize may be given as a DOM.
For example:
org.w3c.dom.Document inputDoc;
com.sun.org.apache.xml.internal.serializer.Serializer ser;
java.io.Writer owriter;
java.util.Properties props =
OutputPropertiesFactory.getDefaultMethodProperties(Method.XML);
Serializer ser = SerializerFactory.getSerializer(props);
owriter = ...; // create a writer to serialize the document to
ser.setWriter( owriter );
inputDoc = ...; // create the DOM document to be serialized
DOMSerializer dser = ser.asDOMSerializer(); // a DOM will be serialized
dser.serialize(inputDoc); // serialize the DOM, sending output to owriter
ser.reset(); // get ready to use the serializer for another document
// of the same output method.
This interface is a public API. |
Methods Summary |
---|
public org.xml.sax.ContentHandler | asContentHandler()Return a {@link ContentHandler} interface to provide SAX input to.
Through the returned object the document to be serailized,
as a series of SAX events, can be provided to the serialzier.
If the serializer does not support the {@link ContentHandler}
interface, it will return null.
In principle only one of asDOMSerializer() or asContentHander()
should be called.
| public com.sun.org.apache.xml.internal.serializer.DOMSerializer | asDOMSerializer()Return a {@link DOMSerializer} interface into this serializer.
Through the returned object the document to be serialized,
a DOM, can be provided to the serializer.
If the serializer does not support the {@link DOMSerializer}
interface, it should return null.
In principle only one of asDOMSerializer() or asContentHander()
should be called.
| public java.util.Properties | getOutputFormat()Returns the output format properties for this serializer.
| public java.io.OutputStream | getOutputStream()Get the output stream where the events will be serialized to.
| public java.io.Writer | getWriter()Get the character stream where the events will be serialized to.
| public boolean | reset()This method resets the serializer.
If this method returns true, the
serializer may be used for subsequent serialization of new
documents. It is possible to change the output format and
output stream prior to serializing, or to reuse the existing
output format and output stream or writer.
| public void | setOutputFormat(java.util.Properties 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.
The standard property keys supported are: "method", "version", "encoding",
"omit-xml-declaration", "standalone", doctype-public",
"doctype-system", "cdata-section-elements", "indent", "media-type".
These property keys and their values are described in the XSLT recommendation,
see {@link XSLT 1.0 recommendation}
The non-standard property keys supported are defined in {@link OutputPropertiesFactory}.
This method can be called multiple times before a document is serialized. Each
time it is called more, or over-riding property values, can be specified. One
property value that can not be changed is that of the "method" property key.
The value of the "cdata-section-elements" property key is a whitespace
separated list of elements. If the element is in a namespace then
value is passed in this format: {uri}localName
If the "cdata-section-elements" key is specified on multiple calls
to this method the set of elements specified in the value
is not replaced from one call to the
next, but it is cumulative across the calls.
| 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 output {@link Properties} is used, or
if no encoding was specified, the default for the selected
output method.
Only one of setWriter() or setOutputStream() should be called.
| 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 output {@link Properties} must be
identical to the output format used with the writer.
Only one of setWriter() or setOutputStream() should be called.
|
|