- All Implemented Interfaces:
ContentHandler
,DTDHandler
,EntityResolver
,ErrorHandler
,XMLFilter
,XMLReader
public class XMLFilterImpl extends Object implements XMLFilter, EntityResolver, DTDHandler, ContentHandler, ErrorHandler
This class is designed to sit between an XMLReader
and the client application's event handlers. By default, it
does nothing but pass requests up to the reader and events
on to the handlers unmodified, but subclasses can override
specific methods to modify the event stream or the configuration
requests as they pass through.
- Since:
- 1.4, SAX 2.0
- See Also:
XMLFilter
,XMLReader
,EntityResolver
,DTDHandler
,ContentHandler
,ErrorHandler
-
Constructor Summary
Constructors Constructor Description XMLFilterImpl()
Construct an empty XML filter, with no parent.XMLFilterImpl(XMLReader parent)
Construct an XML filter with the specified parent. -
Method Summary
Modifier and Type Method Description void
characters(char[] ch, int start, int length)
Filter a character data event.void
endDocument()
Filter an end document event.void
endElement(String uri, String localName, String qName)
Filter an end element event.void
endPrefixMapping(String prefix)
Filter an end Namespace prefix mapping event.void
error(SAXParseException e)
Filter an error event.void
fatalError(SAXParseException e)
Filter a fatal error event.ContentHandler
getContentHandler()
Get the content event handler.DTDHandler
getDTDHandler()
Get the current DTD event handler.EntityResolver
getEntityResolver()
Get the current entity resolver.ErrorHandler
getErrorHandler()
Get the current error event handler.boolean
getFeature(String name)
Look up the value of a feature.XMLReader
getParent()
Get the parent reader.Object
getProperty(String name)
Look up the value of a property.void
ignorableWhitespace(char[] ch, int start, int length)
Filter an ignorable whitespace event.void
notationDecl(String name, String publicId, String systemId)
Filter a notation declaration event.void
parse(String systemId)
Parse a document.void
parse(InputSource input)
Parse a document.void
processingInstruction(String target, String data)
Filter a processing instruction event.InputSource
resolveEntity(String publicId, String systemId)
Filter an external entity resolution.void
setContentHandler(ContentHandler handler)
Set the content event handler.void
setDocumentLocator(Locator locator)
Filter a new document locator event.void
setDTDHandler(DTDHandler handler)
Set the DTD event handler.void
setEntityResolver(EntityResolver resolver)
Set the entity resolver.void
setErrorHandler(ErrorHandler handler)
Set the error event handler.void
setFeature(String name, boolean value)
Set the value of a feature.void
setParent(XMLReader parent)
Set the parent reader.void
setProperty(String name, Object value)
Set the value of a property.void
skippedEntity(String name)
Filter a skipped entity event.void
startDocument()
Filter a start document event.void
startElement(String uri, String localName, String qName, Attributes atts)
Filter a start element event.void
startPrefixMapping(String prefix, String uri)
Filter a start Namespace prefix mapping event.void
unparsedEntityDecl(String name, String publicId, String systemId, String notationName)
Filter an unparsed entity declaration event.void
warning(SAXParseException e)
Filter a warning event.
-
Constructor Details
-
XMLFilterImpl
public XMLFilterImpl()Construct an empty XML filter, with no parent.This filter will have no parent: you must assign a parent before you start a parse or do any configuration with setFeature or setProperty, unless you use this as a pure event consumer rather than as an
XMLReader
. -
XMLFilterImpl
Construct an XML filter with the specified parent.- See Also:
setParent(org.xml.sax.XMLReader)
,getParent()
-
-
Method Details
-
setParent
Set the parent reader.This is the
XMLReader
from which this filter will obtain its events and to which it will pass its configuration requests. The parent may itself be another filter.If there is no parent reader set, any attempt to parse or to set or get a feature or property will fail.
- Specified by:
setParent
in interfaceXMLFilter
- Parameters:
parent
- The parent XML reader.- See Also:
getParent()
-
getParent
Get the parent reader.- Specified by:
getParent
in interfaceXMLFilter
- Returns:
- The parent XML reader, or null if none is set.
- See Also:
setParent(org.xml.sax.XMLReader)
-
setFeature
public void setFeature(String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedExceptionSet the value of a feature.This will always fail if the parent is null.
- Specified by:
setFeature
in interfaceXMLReader
- Parameters:
name
- The feature name.value
- The requested feature value.- Throws:
SAXNotRecognizedException
- If the feature value can't be assigned or retrieved from the parent.SAXNotSupportedException
- When the parent recognizes the feature name but cannot set the requested value.- See Also:
XMLReader.getFeature(java.lang.String)
-
getFeature
Look up the value of a feature.This will always fail if the parent is null.
- Specified by:
getFeature
in interfaceXMLReader
- Parameters:
name
- The feature name.- Returns:
- The current value of the feature.
- Throws:
SAXNotRecognizedException
- If the feature value can't be assigned or retrieved from the parent.SAXNotSupportedException
- When the parent recognizes the feature name but cannot determine its value at this time.- See Also:
XMLReader.setFeature(java.lang.String, boolean)
-
setProperty
public void setProperty(String name, Object value) throws SAXNotRecognizedException, SAXNotSupportedExceptionSet the value of a property.This will always fail if the parent is null.
- Specified by:
setProperty
in interfaceXMLReader
- Parameters:
name
- The property name.value
- The requested property value.- Throws:
SAXNotRecognizedException
- If the property value can't be assigned or retrieved from the parent.SAXNotSupportedException
- When the parent recognizes the property name but cannot set the requested value.
-
getProperty
Look up the value of a property.- Specified by:
getProperty
in interfaceXMLReader
- Parameters:
name
- The property name.- Returns:
- The current value of the property.
- Throws:
SAXNotRecognizedException
- If the property value can't be assigned or retrieved from the parent.SAXNotSupportedException
- When the parent recognizes the property name but cannot determine its value at this time.- See Also:
XMLReader.setProperty(java.lang.String, java.lang.Object)
-
setEntityResolver
Set the entity resolver.- Specified by:
setEntityResolver
in interfaceXMLReader
- Parameters:
resolver
- The new entity resolver.- See Also:
XMLReader.getEntityResolver()
-
getEntityResolver
Get the current entity resolver.- Specified by:
getEntityResolver
in interfaceXMLReader
- Returns:
- The current entity resolver, or null if none was set.
- See Also:
XMLReader.setEntityResolver(org.xml.sax.EntityResolver)
-
setDTDHandler
Set the DTD event handler.- Specified by:
setDTDHandler
in interfaceXMLReader
- Parameters:
handler
- the new DTD handler- See Also:
XMLReader.getDTDHandler()
-
getDTDHandler
Get the current DTD event handler.- Specified by:
getDTDHandler
in interfaceXMLReader
- Returns:
- The current DTD handler, or null if none was set.
- See Also:
XMLReader.setDTDHandler(org.xml.sax.DTDHandler)
-
setContentHandler
Set the content event handler.- Specified by:
setContentHandler
in interfaceXMLReader
- Parameters:
handler
- the new content handler- See Also:
XMLReader.getContentHandler()
-
getContentHandler
Get the content event handler.- Specified by:
getContentHandler
in interfaceXMLReader
- Returns:
- The current content handler, or null if none was set.
- See Also:
XMLReader.setContentHandler(org.xml.sax.ContentHandler)
-
setErrorHandler
Set the error event handler.- Specified by:
setErrorHandler
in interfaceXMLReader
- Parameters:
handler
- the new error handler- See Also:
XMLReader.getErrorHandler()
-
getErrorHandler
Get the current error event handler.- Specified by:
getErrorHandler
in interfaceXMLReader
- Returns:
- The current error handler, or null if none was set.
- See Also:
XMLReader.setErrorHandler(org.xml.sax.ErrorHandler)
-
parse
Parse a document.- Specified by:
parse
in interfaceXMLReader
- Parameters:
input
- The input source for the document entity.- Throws:
SAXException
- Any SAX exception, possibly wrapping another exception.IOException
- An IO exception from the parser, possibly from a byte stream or character stream supplied by the application.- See Also:
InputSource
,XMLReader.parse(java.lang.String)
,XMLReader.setEntityResolver(org.xml.sax.EntityResolver)
,XMLReader.setDTDHandler(org.xml.sax.DTDHandler)
,XMLReader.setContentHandler(org.xml.sax.ContentHandler)
,XMLReader.setErrorHandler(org.xml.sax.ErrorHandler)
-
parse
Parse a document.- Specified by:
parse
in interfaceXMLReader
- Parameters:
systemId
- The system identifier as a fully-qualified URI.- Throws:
SAXException
- Any SAX exception, possibly wrapping another exception.IOException
- An IO exception from the parser, possibly from a byte stream or character stream supplied by the application.- See Also:
XMLReader.parse(org.xml.sax.InputSource)
-
resolveEntity
public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOExceptionFilter an external entity resolution.- Specified by:
resolveEntity
in interfaceEntityResolver
- Parameters:
publicId
- The entity's public identifier, or null.systemId
- The entity's system identifier.- Returns:
- A new InputSource or null for the default.
- Throws:
SAXException
- The client may throw an exception during processing.IOException
- The client may throw an I/O-related exception while obtaining the new InputSource.- See Also:
InputSource
-
notationDecl
Filter a notation declaration event.- Specified by:
notationDecl
in interfaceDTDHandler
- Parameters:
name
- The notation name.publicId
- The notation's public identifier, or null.systemId
- The notation's system identifier, or null.- Throws:
SAXException
- The client may throw an exception during processing.- See Also:
DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
,Attributes
-
unparsedEntityDecl
public void unparsedEntityDecl(String name, String publicId, String systemId, String notationName) throws SAXExceptionFilter an unparsed entity declaration event.- Specified by:
unparsedEntityDecl
in interfaceDTDHandler
- Parameters:
name
- The entity name.publicId
- The entity's public identifier, or null.systemId
- The entity's system identifier, or null.notationName
- The name of the associated notation.- Throws:
SAXException
- The client may throw an exception during processing.- See Also:
DTDHandler.notationDecl(java.lang.String, java.lang.String, java.lang.String)
,Attributes
-
setDocumentLocator
Filter a new document locator event.- Specified by:
setDocumentLocator
in interfaceContentHandler
- Parameters:
locator
- The document locator.- See Also:
Locator
-
startDocument
Filter a start document event.- Specified by:
startDocument
in interfaceContentHandler
- Throws:
SAXException
- The client may throw an exception during processing.- See Also:
ContentHandler.endDocument()
-
endDocument
Filter an end document event.- Specified by:
endDocument
in interfaceContentHandler
- Throws:
SAXException
- The client may throw an exception during processing.- See Also:
ContentHandler.startDocument()
-
startPrefixMapping
Filter a start Namespace prefix mapping event.- Specified by:
startPrefixMapping
in interfaceContentHandler
- Parameters:
prefix
- The Namespace prefix.uri
- The Namespace URI.- Throws:
SAXException
- The client may throw an exception during processing.- See Also:
ContentHandler.endPrefixMapping(java.lang.String)
,ContentHandler.startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
-
endPrefixMapping
Filter an end Namespace prefix mapping event.- Specified by:
endPrefixMapping
in interfaceContentHandler
- Parameters:
prefix
- The Namespace prefix.- Throws:
SAXException
- The client may throw an exception during processing.- See Also:
ContentHandler.startPrefixMapping(java.lang.String, java.lang.String)
,ContentHandler.endElement(java.lang.String, java.lang.String, java.lang.String)
-
startElement
public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXExceptionFilter a start element event.- Specified by:
startElement
in interfaceContentHandler
- Parameters:
uri
- The element's Namespace URI, or the empty string.localName
- The element's local name, or the empty string.qName
- The element's qualified (prefixed) name, or the empty string.atts
- The element's attributes.- Throws:
SAXException
- The client may throw an exception during processing.- See Also:
ContentHandler.endElement(java.lang.String, java.lang.String, java.lang.String)
,Attributes
,AttributesImpl
-
endElement
Filter an end element event.- Specified by:
endElement
in interfaceContentHandler
- Parameters:
uri
- The element's Namespace URI, or the empty string.localName
- The element's local name, or the empty string.qName
- The element's qualified (prefixed) name, or the empty string.- Throws:
SAXException
- The client may throw an exception during processing.
-
characters
Filter a character data event.- Specified by:
characters
in interfaceContentHandler
- Parameters:
ch
- An array of characters.start
- The starting position in the array.length
- The number of characters to use from the array.- Throws:
SAXException
- The client may throw an exception during processing.- See Also:
ContentHandler.ignorableWhitespace(char[], int, int)
,Locator
-
ignorableWhitespace
Filter an ignorable whitespace event.- Specified by:
ignorableWhitespace
in interfaceContentHandler
- Parameters:
ch
- An array of characters.start
- The starting position in the array.length
- The number of characters to use from the array.- Throws:
SAXException
- The client may throw an exception during processing.- See Also:
ContentHandler.characters(char[], int, int)
-
processingInstruction
Filter a processing instruction event.- Specified by:
processingInstruction
in interfaceContentHandler
- Parameters:
target
- The processing instruction target.data
- The text following the target.- Throws:
SAXException
- The client may throw an exception during processing.
-
skippedEntity
Filter a skipped entity event.- Specified by:
skippedEntity
in interfaceContentHandler
- Parameters:
name
- The name of the skipped entity.- Throws:
SAXException
- The client may throw an exception during processing.
-
warning
Filter a warning event.- Specified by:
warning
in interfaceErrorHandler
- Parameters:
e
- The warning as an exception.- Throws:
SAXException
- The client may throw an exception during processing.- See Also:
SAXParseException
-
error
Filter an error event.- Specified by:
error
in interfaceErrorHandler
- Parameters:
e
- The error as an exception.- Throws:
SAXException
- The client may throw an exception during processing.- See Also:
SAXParseException
-
fatalError
Filter a fatal error event.- Specified by:
fatalError
in interfaceErrorHandler
- Parameters:
e
- The error as an exception.- Throws:
SAXException
- The client may throw an exception during processing.
-