public abstract class BasicParserConfiguration extends ParserConfigurationSettings implements XMLParserConfiguration
The basic parser configuration does not mandate
any particular pipeline configuration or the use of specific
components except for the symbol table. If even this is too much
for a basic parser configuration, the programmer can create a new
configuration class that implements the
XMLParserConfiguration
interface.
Subclasses of the basic parser configuration can add their own
recognized features and properties by calling the
addRecognizedFeature
and
addRecognizedProperty
methods, respectively.
The basic parser configuration assumes that the configuration
will be made up of various parser components that implement the
XMLComponent
interface. If subclasses of this
configuration create their own components for use in the
parser configuration, then each component should be added to
the list of components by calling the addComponent
method. The basic parser configuration will make sure to call
the reset
method of each registered component
before parsing an instance document.
This class recognizes the following features and properties:
Modifier and Type | Field and Description |
---|---|
protected static String |
ENTITY_RESOLVER
Property identifier: entity resolver.
|
protected static String |
ERROR_HANDLER
Property identifier: error handler.
|
protected static String |
EXTERNAL_GENERAL_ENTITIES
Feature identifier: external general entities.
|
protected static String |
EXTERNAL_PARAMETER_ENTITIES
Feature identifier: external parameter entities.
|
protected ArrayList |
fComponents
Components.
|
protected XMLDocumentHandler |
fDocumentHandler
The document handler.
|
protected XMLDTDContentModelHandler |
fDTDContentModelHandler
The DTD content model handler.
|
protected XMLDTDHandler |
fDTDHandler
The DTD handler.
|
protected XMLDocumentSource |
fLastComponent
Last component in the document pipeline
|
protected Locale |
fLocale
Locale.
|
protected SymbolTable |
fSymbolTable
Symbol table.
|
protected static String |
NAMESPACES
Feature identifier: namespaces.
|
protected static String |
SYMBOL_TABLE
Property identifier: symbol table.
|
protected static String |
VALIDATION
Feature identifier: validation.
|
protected static String |
XML_STRING
Property identifier: xml string.
|
fFeatures, fParentSettings, fProperties, fRecognizedFeatures, fRecognizedProperties, PARSER_SETTINGS
Modifier | Constructor and Description |
---|---|
protected |
BasicParserConfiguration()
Default Constructor.
|
protected |
BasicParserConfiguration(SymbolTable symbolTable)
Constructs a parser configuration using the specified symbol table.
|
protected |
BasicParserConfiguration(SymbolTable symbolTable,
XMLComponentManager parentSettings)
Constructs a parser configuration using the specified symbol table
and parent settings.
|
Modifier and Type | Method and Description |
---|---|
protected void |
addComponent(XMLComponent component)
Adds a component to the parser configuration.
|
protected void |
checkFeature(String featureId)
Check a feature.
|
protected void |
checkProperty(String propertyId)
Check a property.
|
XMLDocumentHandler |
getDocumentHandler()
Returns the registered document handler.
|
XMLDTDContentModelHandler |
getDTDContentModelHandler()
Returns the registered DTD content model handler.
|
XMLDTDHandler |
getDTDHandler()
Returns the registered DTD handler.
|
XMLEntityResolver |
getEntityResolver()
Return the current entity resolver.
|
XMLErrorHandler |
getErrorHandler()
Return the current error handler.
|
Locale |
getLocale()
Returns the locale.
|
abstract void |
parse(XMLInputSource inputSource)
Parse an XML document.
|
protected void |
reset()
reset all components before parsing and namespace context
|
void |
setDocumentHandler(XMLDocumentHandler documentHandler)
Sets the document handler on the last component in the pipeline
to receive information about the document.
|
void |
setDTDContentModelHandler(XMLDTDContentModelHandler handler)
Sets the DTD content model handler.
|
void |
setDTDHandler(XMLDTDHandler dtdHandler)
Sets the DTD handler.
|
void |
setEntityResolver(XMLEntityResolver resolver)
Sets the resolver used to resolve external entities.
|
void |
setErrorHandler(XMLErrorHandler errorHandler)
Allow an application to register an error event handler.
|
void |
setFeature(String featureId,
boolean state)
Set the state of a feature.
|
void |
setLocale(Locale locale)
Set the locale to use for messages.
|
void |
setProperty(String propertyId,
Object value)
setProperty
|
addRecognizedFeatures, addRecognizedProperties, getFeature, getProperty
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addRecognizedFeatures, addRecognizedProperties, getFeature, getProperty
protected static final String VALIDATION
protected static final String NAMESPACES
protected static final String EXTERNAL_GENERAL_ENTITIES
protected static final String EXTERNAL_PARAMETER_ENTITIES
protected static final String XML_STRING
protected static final String SYMBOL_TABLE
protected static final String ERROR_HANDLER
protected static final String ENTITY_RESOLVER
protected SymbolTable fSymbolTable
protected Locale fLocale
protected ArrayList fComponents
protected XMLDocumentHandler fDocumentHandler
protected XMLDTDHandler fDTDHandler
protected XMLDTDContentModelHandler fDTDContentModelHandler
protected XMLDocumentSource fLastComponent
protected BasicParserConfiguration()
protected BasicParserConfiguration(SymbolTable symbolTable)
symbolTable
- The symbol table to use.protected BasicParserConfiguration(SymbolTable symbolTable, XMLComponentManager parentSettings)
symbolTable
- The symbol table to use.parentSettings
- The parent settings.protected void addComponent(XMLComponent component)
component
- The component to add.public abstract void parse(XMLInputSource inputSource) throws XNIException, IOException
The parser can use this method to instruct this configuration to begin parsing an XML document from any valid input source (a character stream, a byte stream, or a URI).
Parsers may not invoke this method while a parse is in progress. Once a parse is complete, the parser may then parse another XML document.
This method is synchronous: it will not return until parsing has ended. If a client application wants to terminate parsing early, it should throw an exception.
parse
in interface XMLParserConfiguration
inputSource
- The input source for the top-level of the
XML document.XNIException
- Any XNI exception, possibly wrapping
another exception.IOException
- An IO exception from the parser, possibly
from a byte stream or character stream
supplied by the parser.public void setDocumentHandler(XMLDocumentHandler documentHandler)
setDocumentHandler
in interface XMLParserConfiguration
documentHandler
- The document handler.public XMLDocumentHandler getDocumentHandler()
getDocumentHandler
in interface XMLParserConfiguration
public void setDTDHandler(XMLDTDHandler dtdHandler)
setDTDHandler
in interface XMLParserConfiguration
dtdHandler
- The DTD handler.public XMLDTDHandler getDTDHandler()
getDTDHandler
in interface XMLParserConfiguration
public void setDTDContentModelHandler(XMLDTDContentModelHandler handler)
setDTDContentModelHandler
in interface XMLParserConfiguration
handler
- The DTD content model handler.public XMLDTDContentModelHandler getDTDContentModelHandler()
getDTDContentModelHandler
in interface XMLParserConfiguration
public void setEntityResolver(XMLEntityResolver resolver)
setEntityResolver
in interface XMLParserConfiguration
resolver
- The new entity resolver. Passing a null value will
uninstall the currently installed resolver.public XMLEntityResolver getEntityResolver()
getEntityResolver
in interface XMLParserConfiguration
setEntityResolver(org.apache.xerces.xni.parser.XMLEntityResolver)
public void setErrorHandler(XMLErrorHandler errorHandler)
If the application does not register an error handler, all error events reported by the SAX parser will be silently ignored; however, normal processing may not continue. It is highly recommended that all SAX applications implement an error handler to avoid unexpected bugs.
Applications may register a new or different handler in the middle of a parse, and the SAX parser must begin using the new handler immediately.
setErrorHandler
in interface XMLParserConfiguration
errorHandler
- The error handler.NullPointerException
- If the handler
argument is null.getErrorHandler()
public XMLErrorHandler getErrorHandler()
getErrorHandler
in interface XMLParserConfiguration
setErrorHandler(org.apache.xerces.xni.parser.XMLErrorHandler)
public void setFeature(String featureId, boolean state) throws XMLConfigurationException
setFeature
in interface XMLParserConfiguration
setFeature
in class ParserConfigurationSettings
featureId
- The unique identifier (URI) of the feature.state
- The requested state of the feature (true or false).XMLConfigurationException
- If the
requested feature is not known.public void setProperty(String propertyId, Object value) throws XMLConfigurationException
setProperty
in interface XMLParserConfiguration
setProperty
in class ParserConfigurationSettings
propertyId
- value
- XMLConfigurationException
- Thrown if there is a configuration
error.public void setLocale(Locale locale) throws XNIException
setLocale
in interface XMLParserConfiguration
locale
- The locale object to use for localization of messages.XNIException
- Thrown if the parser does not support the
specified locale.public Locale getLocale()
getLocale
in interface XMLParserConfiguration
protected void reset() throws XNIException
XNIException
protected void checkProperty(String propertyId) throws XMLConfigurationException
checkProperty
in class ParserConfigurationSettings
propertyId
- The unique identifier (URI) of the property
being set.XMLConfigurationException
- If the
requested feature is not known or supported.protected void checkFeature(String featureId) throws XMLConfigurationException
checkFeature
in class ParserConfigurationSettings
featureId
- The unique identifier (URI) of the feature.XMLConfigurationException
- Thrown for configuration error.
In general, components should
only throw this exception if
it is really
a critical error.Copyright © 2019 JBoss by Red Hat. All rights reserved.