XMLReaderAdapter

public class XMLReaderAdapter extends Object
implements Parser ContentHandler

Adapt a SAX2 XMLReader as a SAX1 Parser.

This module, both source code and documentation, is in the Public Domain, and comes with NO WARRANTY. See http://www.saxproject.org for further information.

This class wraps a SAX2 XMLReader and makes it act as a SAX1 Parser. The XMLReader must support a true value for the http://xml.org/sax/features/namespace-prefixes property or parsing will fail with a SAXException; if the XMLReader supports a false value for the http://xml.org/sax/features/namespaces property, that will also be used to improve efficiency.

See Also

Public Constructor Summary

XMLReaderAdapter()
Create a new adapter.
XMLReaderAdapter(XMLReader xmlReader)
Create a new adapter.

Public Method Summary

void
characters(char[] ch, int start, int length)
Adapt a SAX2 characters event.
void
endDocument()
End document event.
void
endElement(String uri, String localName, String qName)
Adapt a SAX2 end element event.
void
endPrefixMapping(String prefix)
Adapt a SAX2 end prefix mapping event.
void
ignorableWhitespace(char[] ch, int start, int length)
Adapt a SAX2 ignorable whitespace event.
void
parse(InputSource input)
Parse the document.
void
parse(String systemId)
Parse the document.
void
processingInstruction(String target, String data)
Adapt a SAX2 processing instruction event.
void
setDTDHandler(DTDHandler handler)
Register the DTD event handler.
void
setDocumentHandler(DocumentHandler handler)
Register the SAX1 document event handler.
void
setDocumentLocator(Locator locator)
Set a document locator.
void
setEntityResolver(EntityResolver resolver)
Register the entity resolver.
void
setErrorHandler(ErrorHandler handler)
Register the error event handler.
void
setLocale(Locale locale)
Set the locale for error reporting.
void
skippedEntity(String name)
Adapt a SAX2 skipped entity event.
void
startDocument()
Start document event.
void
startElement(String uri, String localName, String qName, Attributes atts)
Adapt a SAX2 start element event.
void
startPrefixMapping(String prefix, String uri)
Adapt a SAX2 start prefix mapping event.

Inherited Method Summary

Public Constructors

public XMLReaderAdapter ()

Create a new adapter.

Use the "org.xml.sax.driver" property to locate the SAX2 driver to embed.

Throws
SAXException If the embedded driver cannot be instantiated or if the org.xml.sax.driver property is not specified.

public XMLReaderAdapter (XMLReader xmlReader)

Create a new adapter.

Create a new adapter, wrapped around a SAX2 XMLReader. The adapter will make the XMLReader act like a SAX1 Parser.

Parameters
xmlReader The SAX2 XMLReader to wrap.
Throws
NullPointerException If the argument is null.

Public Methods

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

Adapt a SAX2 characters event.

Parameters
ch An array of characters.
start The starting position in the array.
length The number of characters to use.
Throws
SAXException The client may raise a processing exception.

public void endDocument ()

End document event.

Throws
SAXException The client may raise a processing exception.

public void endElement (String uri, String localName, String qName)

Adapt a SAX2 end element event.

Parameters
uri The Namespace URI.
localName The Namespace local name.
qName The qualified (prefixed) name.
Throws
SAXException The client may raise a processing exception.

public void endPrefixMapping (String prefix)

Adapt a SAX2 end prefix mapping event.

Parameters
prefix The prefix being mapped.

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

Adapt a SAX2 ignorable whitespace event.

Parameters
ch An array of characters.
start The starting position in the array.
length The number of characters to use.
Throws
SAXException The client may raise a processing exception.

public void parse (InputSource input)

Parse the document.

This method will throw an exception if the embedded XMLReader does not support the http://xml.org/sax/features/namespace-prefixes property.

Parameters
input An input source for the document.
Throws
IOException If there is a problem reading the raw content of the document.
SAXException If there is a problem processing the document.

public void parse (String systemId)

Parse the document.

This method will throw an exception if the embedded XMLReader does not support the http://xml.org/sax/features/namespace-prefixes property.

Parameters
systemId The absolute URL of the document.
Throws
IOException If there is a problem reading the raw content of the document.
SAXException If there is a problem processing the document.

public void processingInstruction (String target, String data)

Adapt a SAX2 processing instruction event.

Parameters
target The processing instruction target.
data The remainder of the processing instruction
Throws
SAXException The client may raise a processing exception.

public void setDTDHandler (DTDHandler handler)

Register the DTD event handler.

Parameters
handler The new DTD event handler.

public void setDocumentHandler (DocumentHandler handler)

Register the SAX1 document event handler.

Note that the SAX1 document handler has no Namespace support.

Parameters
handler The new SAX1 document event handler.

public void setDocumentLocator (Locator locator)

Set a document locator.

Parameters
locator The document locator.

public void setEntityResolver (EntityResolver resolver)

Register the entity resolver.

Parameters
resolver The new resolver.

public void setErrorHandler (ErrorHandler handler)

Register the error event handler.

Parameters
handler The new error event handler.

public void setLocale (Locale locale)

Set the locale for error reporting.

This is not supported in SAX2, and will always throw an exception.

Parameters
locale the locale for error reporting.
Throws
SAXException Thrown unless overridden.

public void skippedEntity (String name)

Adapt a SAX2 skipped entity event.

Parameters
name The name of the skipped entity.
Throws
SAXException Throwable by subclasses.

public void startDocument ()

Start document event.

Throws
SAXException The client may raise a processing exception.

public void startElement (String uri, String localName, String qName, Attributes atts)

Adapt a SAX2 start element event.

Parameters
uri The Namespace URI.
localName The Namespace local name.
qName The qualified (prefixed) name.
atts The SAX2 attributes.
Throws
SAXException The client may raise a processing exception.

public void startPrefixMapping (String prefix, String uri)

Adapt a SAX2 start prefix mapping event.

Parameters
prefix The prefix being mapped.
uri The Namespace URI being mapped to.