public class XMLReaderAdapter extends Object implements Parser, ContentHandler
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.
Constructor and Description |
---|
XMLReaderAdapter()
Create a new adapter.
|
XMLReaderAdapter(XMLReader xmlReader)
Create a new adapter.
|
Modifier and Type | Method and Description |
---|---|
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 |
setDocumentHandler(DocumentHandler handler)
Register the SAX1 document event handler.
|
void |
setDocumentLocator(Locator locator)
Set a document locator.
|
void |
setDTDHandler(DTDHandler handler)
Register the DTD event handler.
|
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.
|
public XMLReaderAdapter() throws SAXException
Use the "org.xml.sax.driver" property to locate the SAX2 driver to embed.
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, wrapped around a SAX2 XMLReader. The adapter will make the XMLReader act like a SAX1 Parser.
xmlReader
- The SAX2 XMLReader to wrap.NullPointerException
- If the argument is null.public void setLocale(Locale locale) throws SAXException
This is not supported in SAX2, and will always throw an exception.
setLocale
in interface Parser
locale
- the locale for error reporting.SAXException
- Thrown unless overridden.Parser.setLocale(java.util.Locale)
public void setEntityResolver(EntityResolver resolver)
setEntityResolver
in interface Parser
resolver
- The new resolver.Parser.setEntityResolver(org.xml.sax.EntityResolver)
public void setDTDHandler(DTDHandler handler)
setDTDHandler
in interface Parser
handler
- The new DTD event handler.Parser.setDTDHandler(org.xml.sax.DTDHandler)
public void setDocumentHandler(DocumentHandler handler)
Note that the SAX1 document handler has no Namespace support.
setDocumentHandler
in interface Parser
handler
- The new SAX1 document event handler.Parser.setDocumentHandler(org.xml.sax.DocumentHandler)
public void setErrorHandler(ErrorHandler handler)
setErrorHandler
in interface Parser
handler
- The new error event handler.Parser.setErrorHandler(org.xml.sax.ErrorHandler)
public void parse(String systemId) throws IOException, SAXException
This method will throw an exception if the embedded XMLReader does not support the http://xml.org/sax/features/namespace-prefixes property.
parse
in interface Parser
systemId
- The absolute URL of the document.IOException
- If there is a problem reading
the raw content of the document.SAXException
- If there is a problem
processing the document.parse(org.xml.sax.InputSource)
,
Parser.parse(java.lang.String)
public void parse(InputSource input) throws IOException, SAXException
This method will throw an exception if the embedded XMLReader does not support the http://xml.org/sax/features/namespace-prefixes property.
parse
in interface Parser
input
- An input source for the document.IOException
- If there is a problem reading
the raw content of the document.SAXException
- If there is a problem
processing the document.parse(java.lang.String)
,
Parser.parse(org.xml.sax.InputSource)
public void setDocumentLocator(Locator locator)
setDocumentLocator
in interface ContentHandler
locator
- The document locator.ContentHandler.setDocumentLocator(org.xml.sax.Locator)
public void startDocument() throws SAXException
startDocument
in interface ContentHandler
SAXException
- The client may raise a
processing exception.ContentHandler.startDocument()
public void endDocument() throws SAXException
endDocument
in interface ContentHandler
SAXException
- The client may raise a
processing exception.ContentHandler.endDocument()
public void startPrefixMapping(String prefix, String uri)
startPrefixMapping
in interface ContentHandler
prefix
- The prefix being mapped.uri
- The Namespace URI being mapped to.ContentHandler.startPrefixMapping(java.lang.String, java.lang.String)
public void endPrefixMapping(String prefix)
endPrefixMapping
in interface ContentHandler
prefix
- The prefix being mapped.ContentHandler.endPrefixMapping(java.lang.String)
public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException
startElement
in interface ContentHandler
uri
- The Namespace URI.localName
- The Namespace local name.qName
- The qualified (prefixed) name.atts
- The SAX2 attributes.SAXException
- The client may raise a
processing exception.ContentHandler.endDocument()
public void endElement(String uri, String localName, String qName) throws SAXException
endElement
in interface ContentHandler
uri
- The Namespace URI.localName
- The Namespace local name.qName
- The qualified (prefixed) name.SAXException
- The client may raise a
processing exception.ContentHandler.endElement(java.lang.String, java.lang.String, java.lang.String)
public void characters(char[] ch, int start, int length) throws SAXException
characters
in interface ContentHandler
ch
- An array of characters.start
- The starting position in the array.length
- The number of characters to use.SAXException
- The client may raise a
processing exception.ContentHandler.characters(char[], int, int)
public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException
ignorableWhitespace
in interface ContentHandler
ch
- An array of characters.start
- The starting position in the array.length
- The number of characters to use.SAXException
- The client may raise a
processing exception.ContentHandler.ignorableWhitespace(char[], int, int)
public void processingInstruction(String target, String data) throws SAXException
processingInstruction
in interface ContentHandler
target
- The processing instruction target.data
- The remainder of the processing instructionSAXException
- The client may raise a
processing exception.ContentHandler.processingInstruction(java.lang.String, java.lang.String)
public void skippedEntity(String name) throws SAXException
skippedEntity
in interface ContentHandler
name
- The name of the skipped entity.SAXException
- Throwable by subclasses.ContentHandler.skippedEntity(java.lang.String)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2022, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.