org.apache.jackrabbit.commons.xml
Class ToXmlContentHandler

java.lang.Object
  extended by org.xml.sax.helpers.DefaultHandler
      extended by org.apache.jackrabbit.commons.xml.ToXmlContentHandler
All Implemented Interfaces:
ContentHandler, DTDHandler, EntityResolver, ErrorHandler

public class ToXmlContentHandler
extends DefaultHandler

Simple XML serializer. This content handler serializes the received SAX events as XML to a given Writer or OutputStream. The serialization assumes that the incoming SAX events are well-formed, i.e. that all elements are properly nested, that element and attribute names are valid and that no invalid XML characters are included. Assuming these preconditions are met, the result will be a well-formed XML stream.

This serializer does not have any special support for namespaces. For example, namespace prefixes are declared in the resulting XML stream if and only if the corresponding "xmlns" attributes are explicitly included in the Attributes instances passed in startElement(String, String, String, Attributes) calls.

As a convenience this class inherits the DefaultHandler class instead of just the ContentHandler interface. This makes it easier to pass instances of this class to methods like SAXParser.parse(String, DefaultHandler) that expect a DefaultHandler instance instead of a ContentHandler.


Constructor Summary
ToXmlContentHandler()
          Creates an XML serializer that writes the serialized XML stream to an internal buffer.
ToXmlContentHandler(OutputStream stream)
          Creates an XML serializer that writes the serialized XML stream to the given output stream using the UTF-8 character encoding.
ToXmlContentHandler(OutputStream stream, String encoding)
          Creates an XML serializer that writes the serialized XML stream to the given output stream using the given character encoding.
ToXmlContentHandler(Writer writer)
          Creates an XML serializer that writes the serialized XML stream to the given writer.
 
Method Summary
 void characters(char[] ch, int start, int length)
          Escapes and outputs the given characters.
 void endDocument()
          Ends the XML serialization by flushing the output stream.
 void endElement(String namespaceURI, String localName, String qName)
          Outputs the specified end tag.
 void ignorableWhitespace(char[] ch, int start, int length)
          Escapes and outputs the given characters.
 void processingInstruction(String target, String data)
          Serializes a processing instruction.
 void startDocument()
          Starts the XML serialization by outputting the <?
 void startElement(String namespaceURI, String localName, String qName, Attributes atts)
          Outputs the specified start tag with the given attributes.
 String toString()
          Returns the serialized XML document (assuming the default no-argument constructor was used).
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endPrefixMapping, error, fatalError, notationDecl, resolveEntity, setDocumentLocator, skippedEntity, startPrefixMapping, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ToXmlContentHandler

public ToXmlContentHandler(OutputStream stream,
                           String encoding)
                    throws UnsupportedEncodingException
Creates an XML serializer that writes the serialized XML stream to the given output stream using the given character encoding.

Parameters:
stream - XML output stream
encoding - character encoding
Throws:
UnsupportedEncodingException - if the encoding is not supported

ToXmlContentHandler

public ToXmlContentHandler(OutputStream stream)
Creates an XML serializer that writes the serialized XML stream to the given output stream using the UTF-8 character encoding.

Parameters:
stream - XML output stream

ToXmlContentHandler

public ToXmlContentHandler(Writer writer)
Creates an XML serializer that writes the serialized XML stream to the given writer.

Parameters:
writer - XML output stream

ToXmlContentHandler

public ToXmlContentHandler()
Creates an XML serializer that writes the serialized XML stream to an internal buffer. Use the toString() method to access the serialized XML document.

Method Detail

startDocument

public void startDocument()
                   throws SAXException
Starts the XML serialization by outputting the <?xml?> header.

Specified by:
startDocument in interface ContentHandler
Overrides:
startDocument in class DefaultHandler
Throws:
SAXException

endDocument

public void endDocument()
                 throws SAXException
Ends the XML serialization by flushing the output stream.

Specified by:
endDocument in interface ContentHandler
Overrides:
endDocument in class DefaultHandler
Throws:
SAXException

processingInstruction

public void processingInstruction(String target,
                                  String data)
                           throws SAXException
Serializes a processing instruction.

Specified by:
processingInstruction in interface ContentHandler
Overrides:
processingInstruction in class DefaultHandler
Throws:
SAXException

startElement

public void startElement(String namespaceURI,
                         String localName,
                         String qName,
                         Attributes atts)
                  throws SAXException
Outputs the specified start tag with the given attributes.

Specified by:
startElement in interface ContentHandler
Overrides:
startElement in class DefaultHandler
Throws:
SAXException

characters

public void characters(char[] ch,
                       int start,
                       int length)
                throws SAXException
Escapes and outputs the given characters.

Specified by:
characters in interface ContentHandler
Overrides:
characters in class DefaultHandler
Throws:
SAXException

ignorableWhitespace

public void ignorableWhitespace(char[] ch,
                                int start,
                                int length)
                         throws SAXException
Escapes and outputs the given characters.

Specified by:
ignorableWhitespace in interface ContentHandler
Overrides:
ignorableWhitespace in class DefaultHandler
Throws:
SAXException

endElement

public void endElement(String namespaceURI,
                       String localName,
                       String qName)
                throws SAXException
Outputs the specified end tag.

Specified by:
endElement in interface ContentHandler
Overrides:
endElement in class DefaultHandler
Throws:
SAXException

toString

public String toString()
Returns the serialized XML document (assuming the default no-argument constructor was used).

Overrides:
toString in class Object
Parameters:
serialized - XML document


Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.