- All Implemented Interfaces:
DocumentHandler
,XMLReader
public class ParserAdapter extends Object implements XMLReader, DocumentHandler
This class wraps a SAX1 Parser
and makes it act as a SAX2 XMLReader
,
with feature, property, and Namespace support. Note
that it is not possible to report skippedEntity
events, since SAX1 does not make that information available.
This adapter does not test for duplicate Namespace-qualified attribute names.
- Since:
- 1.4, SAX 2.0
- See Also:
XMLReaderAdapter
,XMLReader
,Parser
-
Constructor Summary
Constructors Constructor Description ParserAdapter()
Construct a new parser adapter.ParserAdapter(Parser parser)
Construct a new parser adapter. -
Method Summary
Modifier and Type Method Description void
characters(char[] ch, int start, int length)
Adapter implementation method; do not call.void
endDocument()
Adapter implementation method; do not call.void
endElement(String qName)
Adapter implementation method; do not call.ContentHandler
getContentHandler()
Return the current content handler.DTDHandler
getDTDHandler()
Return the current DTD handler.EntityResolver
getEntityResolver()
Return the current entity resolver.ErrorHandler
getErrorHandler()
Return the current error handler.boolean
getFeature(String name)
Check a parser feature flag.Object
getProperty(String name)
Get a parser property.void
ignorableWhitespace(char[] ch, int start, int length)
Adapter implementation method; do not call.void
parse(String systemId)
Parse an XML document.void
parse(InputSource input)
Parse an XML document.void
processingInstruction(String target, String data)
Adapter implementation method; do not call.void
setContentHandler(ContentHandler handler)
Set the content handler.void
setDocumentLocator(Locator locator)
Adapter implementation method; do not call.void
setDTDHandler(DTDHandler handler)
Set the DTD handler.void
setEntityResolver(EntityResolver resolver)
Set the entity resolver.void
setErrorHandler(ErrorHandler handler)
Set the error handler.void
setFeature(String name, boolean value)
Set a feature flag for the parser.void
setProperty(String name, Object value)
Set a parser property.void
startDocument()
Adapter implementation method; do not call.void
startElement(String qName, AttributeList qAtts)
Adapter implementation method; do not call.
-
Constructor Details
-
ParserAdapter
Construct a new parser adapter.Use the "org.xml.sax.parser" property to locate the embedded SAX1 driver.
- Throws:
SAXException
- If the embedded driver cannot be instantiated or if the org.xml.sax.parser property is not specified.
-
ParserAdapter
Construct a new parser adapter.Note that the embedded parser cannot be changed once the adapter is created; to embed a different parser, allocate a new ParserAdapter.
- Parameters:
parser
- The SAX1 parser to embed.- Throws:
NullPointerException
- If the parser parameter is null.
-
-
Method Details
-
setFeature
public void setFeature(String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedExceptionSet a feature flag for the parser.The only features recognized are namespaces and namespace-prefixes.
- Specified by:
setFeature
in interfaceXMLReader
- Parameters:
name
- The feature name, as a complete URI.value
- The requested feature value.- Throws:
SAXNotRecognizedException
- If the feature can't be assigned or retrieved.SAXNotSupportedException
- If the feature can't be assigned that value.- See Also:
XMLReader.setFeature(java.lang.String, boolean)
-
getFeature
Check a parser feature flag.The only features recognized are namespaces and namespace-prefixes.
- Specified by:
getFeature
in interfaceXMLReader
- Parameters:
name
- The feature name, as a complete URI.- Returns:
- The current feature value.
- Throws:
SAXNotRecognizedException
- If the feature value can't be assigned or retrieved.SAXNotSupportedException
- If the feature is not currently readable.- See Also:
XMLReader.setFeature(java.lang.String, boolean)
-
setProperty
public void setProperty(String name, Object value) throws SAXNotRecognizedException, SAXNotSupportedExceptionSet a parser property.No properties are currently recognized.
- Specified by:
setProperty
in interfaceXMLReader
- Parameters:
name
- The property name.value
- The property value.- Throws:
SAXNotRecognizedException
- If the property value can't be assigned or retrieved.SAXNotSupportedException
- If the property can't be assigned that value.- See Also:
XMLReader.setProperty(java.lang.String, java.lang.Object)
-
getProperty
Get a parser property.No properties are currently recognized.
- Specified by:
getProperty
in interfaceXMLReader
- Parameters:
name
- The property name.- Returns:
- The property value.
- Throws:
SAXNotRecognizedException
- If the property value can't be assigned or retrieved.SAXNotSupportedException
- If the property value is not currently readable.- See Also:
XMLReader.getProperty(java.lang.String)
-
setEntityResolver
Set the entity resolver.- Specified by:
setEntityResolver
in interfaceXMLReader
- Parameters:
resolver
- The new entity resolver.- See Also:
XMLReader.setEntityResolver(org.xml.sax.EntityResolver)
-
getEntityResolver
Return the current entity resolver.- Specified by:
getEntityResolver
in interfaceXMLReader
- Returns:
- The current entity resolver, or null if none was supplied.
- See Also:
XMLReader.getEntityResolver()
-
setDTDHandler
Set the DTD handler.- Specified by:
setDTDHandler
in interfaceXMLReader
- Parameters:
handler
- the new DTD handler- See Also:
XMLReader.setEntityResolver(org.xml.sax.EntityResolver)
-
getDTDHandler
Return the current DTD handler.- Specified by:
getDTDHandler
in interfaceXMLReader
- Returns:
- the current DTD handler, or null if none was supplied
- See Also:
XMLReader.getEntityResolver()
-
setContentHandler
Set the content handler.- Specified by:
setContentHandler
in interfaceXMLReader
- Parameters:
handler
- the new content handler- See Also:
XMLReader.setEntityResolver(org.xml.sax.EntityResolver)
-
getContentHandler
Return the current content handler.- Specified by:
getContentHandler
in interfaceXMLReader
- Returns:
- The current content handler, or null if none was supplied.
- See Also:
XMLReader.getEntityResolver()
-
setErrorHandler
Set the error handler.- Specified by:
setErrorHandler
in interfaceXMLReader
- Parameters:
handler
- The new error handler.- See Also:
XMLReader.setEntityResolver(org.xml.sax.EntityResolver)
-
getErrorHandler
Return the current error handler.- Specified by:
getErrorHandler
in interfaceXMLReader
- Returns:
- The current error handler, or null if none was supplied.
- See Also:
XMLReader.getEntityResolver()
-
parse
Parse an XML document.- Specified by:
parse
in interfaceXMLReader
- 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.- See Also:
parse(org.xml.sax.InputSource)
,Parser.parse(java.lang.String)
-
parse
Parse an XML document.- Specified by:
parse
in interfaceXMLReader
- 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.- See Also:
parse(java.lang.String)
,Parser.parse(org.xml.sax.InputSource)
-
setDocumentLocator
Adapter implementation method; do not call. Adapt a SAX1 document locator event.- Specified by:
setDocumentLocator
in interfaceDocumentHandler
- Parameters:
locator
- A document locator.- See Also:
ContentHandler.setDocumentLocator(org.xml.sax.Locator)
-
startDocument
Adapter implementation method; do not call. Adapt a SAX1 start document event.- Specified by:
startDocument
in interfaceDocumentHandler
- Throws:
SAXException
- The client may raise a processing exception.- See Also:
DocumentHandler.startDocument()
-
endDocument
Adapter implementation method; do not call. Adapt a SAX1 end document event.- Specified by:
endDocument
in interfaceDocumentHandler
- Throws:
SAXException
- The client may raise a processing exception.- See Also:
DocumentHandler.endDocument()
-
startElement
Adapter implementation method; do not call. Adapt a SAX1 startElement event.If necessary, perform Namespace processing.
- Specified by:
startElement
in interfaceDocumentHandler
- Parameters:
qName
- The qualified (prefixed) name.qAtts
- The XML attribute list (with qnames).- Throws:
SAXException
- The client may raise a processing exception.- See Also:
DocumentHandler.endElement(java.lang.String)
,AttributeList
-
endElement
Adapter implementation method; do not call. Adapt a SAX1 end element event.- Specified by:
endElement
in interfaceDocumentHandler
- Parameters:
qName
- The qualified (prefixed) name.- Throws:
SAXException
- The client may raise a processing exception.- See Also:
DocumentHandler.endElement(java.lang.String)
-
characters
Adapter implementation method; do not call. Adapt a SAX1 characters event.- Specified by:
characters
in interfaceDocumentHandler
- 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.- See Also:
DocumentHandler.characters(char[], int, int)
-
ignorableWhitespace
Adapter implementation method; do not call. Adapt a SAX1 ignorable whitespace event.- Specified by:
ignorableWhitespace
in interfaceDocumentHandler
- 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.- See Also:
DocumentHandler.ignorableWhitespace(char[], int, int)
-
processingInstruction
Adapter implementation method; do not call. Adapt a SAX1 processing instruction event.- Specified by:
processingInstruction
in interfaceDocumentHandler
- Parameters:
target
- The processing instruction target.data
- The remainder of the processing instruction- Throws:
SAXException
- The client may raise a processing exception.- See Also:
DocumentHandler.processingInstruction(java.lang.String, java.lang.String)
-