org.xml.sax.helpers

Class 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 {@link org.xml.sax.XMLReader XMLReader} and makes it act as a SAX1 {@link org.xml.sax.Parser Parser}. The XMLReader must support a true value for the http://xml.org/sax/features/namespace-prefixes property or parsing will fail with a {@link org.xml.sax.SAXException 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.

Since: SAX 2.0

Version: 2.0.1 (sax2r2)

Author: David Megginson

See Also: Parser XMLReader

Constructor Summary
XMLReaderAdapter()
Create a new adapter.
XMLReaderAdapter(XMLReader xmlReader)
Create a new adapter.
Method Summary
voidcharacters(char[] ch, int start, int length)
Adapt a SAX2 characters event.
voidendDocument()
End document event.
voidendElement(String uri, String localName, String qName)
Adapt a SAX2 end element event.
voidendPrefixMapping(String prefix)
Adapt a SAX2 end prefix mapping event.
voidignorableWhitespace(char[] ch, int start, int length)
Adapt a SAX2 ignorable whitespace event.
voidparse(String systemId)
Parse the document.
voidparse(InputSource input)
Parse the document.
voidprocessingInstruction(String target, String data)
Adapt a SAX2 processing instruction event.
voidsetDocumentHandler(DocumentHandler handler)
Register the SAX1 document event handler.
voidsetDocumentLocator(Locator locator)
Set a document locator.
voidsetDTDHandler(DTDHandler handler)
Register the DTD event handler.
voidsetEntityResolver(EntityResolver resolver)
Register the entity resolver.
voidsetErrorHandler(ErrorHandler handler)
Register the error event handler.
voidsetLocale(Locale locale)
Set the locale for error reporting.
voidskippedEntity(String name)
Adapt a SAX2 skipped entity event.
voidstartDocument()
Start document event.
voidstartElement(String uri, String localName, String qName, Attributes atts)
Adapt a SAX2 start element event.
voidstartPrefixMapping(String prefix, String uri)
Adapt a SAX2 start prefix mapping event.

Constructor Detail

XMLReaderAdapter

public XMLReaderAdapter()
Create a new adapter.

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

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

XMLReaderAdapter

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: java.lang.NullPointerException If the argument is null.

Method Detail

characters

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: org.xml.sax.SAXException The client may raise a processing exception.

See Also: ContentHandler

endDocument

public void endDocument()
End document event.

Throws: org.xml.sax.SAXException The client may raise a processing exception.

See Also: ContentHandler

endElement

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: org.xml.sax.SAXException The client may raise a processing exception.

See Also: ContentHandler

endPrefixMapping

public void endPrefixMapping(String prefix)
Adapt a SAX2 end prefix mapping event.

Parameters: prefix The prefix being mapped.

See Also: ContentHandler

ignorableWhitespace

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: org.xml.sax.SAXException The client may raise a processing exception.

See Also: ContentHandler

parse

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: java.io.IOException If there is a problem reading the raw content of the document. org.xml.sax.SAXException If there is a problem processing the document.

See Also: parse Parser

parse

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: java.io.IOException If there is a problem reading the raw content of the document. org.xml.sax.SAXException If there is a problem processing the document.

See Also: XMLReaderAdapter parse

processingInstruction

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: org.xml.sax.SAXException The client may raise a processing exception.

See Also: ContentHandler

setDocumentHandler

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.

See Also: Parser

setDocumentLocator

public void setDocumentLocator(Locator locator)
Set a document locator.

Parameters: locator The document locator.

See Also: ContentHandler

setDTDHandler

public void setDTDHandler(DTDHandler handler)
Register the DTD event handler.

Parameters: handler The new DTD event handler.

See Also: Parser

setEntityResolver

public void setEntityResolver(EntityResolver resolver)
Register the entity resolver.

Parameters: resolver The new resolver.

See Also: Parser

setErrorHandler

public void setErrorHandler(ErrorHandler handler)
Register the error event handler.

Parameters: handler The new error event handler.

See Also: Parser

setLocale

public void setLocale(Locale locale)
Set the locale for error reporting.

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

Parameters: The locale for error reporting.

Throws: org.xml.sax.SAXException Thrown unless overridden.

See Also: Parser

skippedEntity

public void skippedEntity(String name)
Adapt a SAX2 skipped entity event.

Parameters: name The name of the skipped entity.

Throws: org.xml.sax.SAXException Throwable by subclasses.

See Also: ContentHandler

startDocument

public void startDocument()
Start document event.

Throws: org.xml.sax.SAXException The client may raise a processing exception.

See Also: ContentHandler

startElement

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: org.xml.sax.SAXException The client may raise a processing exception.

See Also: ContentHandler

startPrefixMapping

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.

See Also: ContentHandler