Class BasicParserConfiguration
- java.lang.Object
-
- org.smooks.engine.delivery.sax.ng.org.apache.xerces.util.ParserConfigurationSettings
-
- org.smooks.engine.delivery.sax.ng.org.apache.xerces.parsers.BasicParserConfiguration
-
- All Implemented Interfaces:
XMLComponentManager,XMLParserConfiguration
- Direct Known Subclasses:
DTDConfiguration,NonValidatingConfiguration,SchemaParsingConfig
public abstract class BasicParserConfiguration extends ParserConfigurationSettings implements XMLParserConfiguration
A very basic parser configuration. This configuration class can be used as a base class for custom parser configurations. The basic parser configuration creates the symbol table (if not specified at construction time) and manages all of the recognized features and properties.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
XMLParserConfigurationinterface.Subclasses of the basic parser configuration can add their own recognized features and properties by calling the
addRecognizedFeatureandaddRecognizedPropertymethods, respectively.The basic parser configuration assumes that the configuration will be made up of various parser components that implement the
XMLComponentinterface. 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 theaddComponentmethod. The basic parser configuration will make sure to call theresetmethod of each registered component before parsing an instance document.This class recognizes the following features and properties:
- Features
- http://xml.org/sax/features/validation
- http://xml.org/sax/features/namespaces
- http://xml.org/sax/features/external-general-entities
- http://xml.org/sax/features/external-parameter-entities
- Properties
- http://xml.org/sax/properties/xml-string
- http://apache.org/xml/properties/internal/symbol-table
- http://apache.org/xml/properties/internal/error-handler
- http://apache.org/xml/properties/internal/entity-resolver
- Version:
- $Id$
- Author:
- Arnaud Le Hors, IBM, Andy Clark, IBM
-
-
Field Summary
Fields Modifier and Type Field Description protected static StringENTITY_RESOLVERProperty identifier: entity resolver.protected static StringERROR_HANDLERProperty identifier: error handler.protected static StringEXTERNAL_GENERAL_ENTITIESFeature identifier: external general entities.protected static StringEXTERNAL_PARAMETER_ENTITIESFeature identifier: external parameter entities.protected ArrayListfComponentsComponents.protected XMLDocumentHandlerfDocumentHandlerThe document handler.protected XMLDTDContentModelHandlerfDTDContentModelHandlerThe DTD content model handler.protected XMLDTDHandlerfDTDHandlerThe DTD handler.protected XMLDocumentSourcefLastComponentLast component in the document pipelineprotected LocalefLocaleLocale.protected SymbolTablefSymbolTableSymbol table.protected static StringNAMESPACESFeature identifier: namespaces.protected static StringSYMBOL_TABLEProperty identifier: symbol table.protected static StringVALIDATIONFeature identifier: validation.protected static StringXML_STRINGProperty identifier: xml string.-
Fields inherited from class org.smooks.engine.delivery.sax.ng.org.apache.xerces.util.ParserConfigurationSettings
fFeatures, fParentSettings, fProperties, fRecognizedFeatures, fRecognizedProperties, PARSER_SETTINGS
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedBasicParserConfiguration()Default Constructor.protectedBasicParserConfiguration(SymbolTable symbolTable)Constructs a parser configuration using the specified symbol table.protectedBasicParserConfiguration(SymbolTable symbolTable, XMLComponentManager parentSettings)Constructs a parser configuration using the specified symbol table and parent settings.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidaddComponent(XMLComponent component)Adds a component to the parser configuration.protected voidcheckFeature(String featureId)Check a feature.protected voidcheckProperty(String propertyId)Check a property.XMLDocumentHandlergetDocumentHandler()Returns the registered document handler.XMLDTDContentModelHandlergetDTDContentModelHandler()Returns the registered DTD content model handler.XMLDTDHandlergetDTDHandler()Returns the registered DTD handler.XMLEntityResolvergetEntityResolver()Return the current entity resolver.XMLErrorHandlergetErrorHandler()Return the current error handler.LocalegetLocale()Returns the locale.abstract voidparse(XMLInputSource inputSource)Parse an XML document.protected voidreset()reset all components before parsing and namespace contextvoidsetDocumentHandler(XMLDocumentHandler documentHandler)Sets the document handler on the last component in the pipeline to receive information about the document.voidsetDTDContentModelHandler(XMLDTDContentModelHandler handler)Sets the DTD content model handler.voidsetDTDHandler(XMLDTDHandler dtdHandler)Sets the DTD handler.voidsetEntityResolver(XMLEntityResolver resolver)Sets the resolver used to resolve external entities.voidsetErrorHandler(XMLErrorHandler errorHandler)Allow an application to register an error event handler.voidsetFeature(String featureId, boolean state)Set the state of a feature.voidsetLocale(Locale locale)Set the locale to use for messages.voidsetProperty(String propertyId, Object value)setProperty-
Methods inherited from class org.smooks.engine.delivery.sax.ng.org.apache.xerces.util.ParserConfigurationSettings
addRecognizedFeatures, addRecognizedProperties, getFeature, getProperty
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.smooks.engine.delivery.sax.ng.org.apache.xerces.xni.parser.XMLParserConfiguration
addRecognizedFeatures, addRecognizedProperties, getFeature, getProperty
-
-
-
-
Field Detail
-
VALIDATION
protected static final String VALIDATION
Feature identifier: validation.- See Also:
- Constant Field Values
-
NAMESPACES
protected static final String NAMESPACES
Feature identifier: namespaces.- See Also:
- Constant Field Values
-
EXTERNAL_GENERAL_ENTITIES
protected static final String EXTERNAL_GENERAL_ENTITIES
Feature identifier: external general entities.- See Also:
- Constant Field Values
-
EXTERNAL_PARAMETER_ENTITIES
protected static final String EXTERNAL_PARAMETER_ENTITIES
Feature identifier: external parameter entities.- See Also:
- Constant Field Values
-
XML_STRING
protected static final String XML_STRING
Property identifier: xml string.- See Also:
- Constant Field Values
-
SYMBOL_TABLE
protected static final String SYMBOL_TABLE
Property identifier: symbol table.- See Also:
- Constant Field Values
-
ERROR_HANDLER
protected static final String ERROR_HANDLER
Property identifier: error handler.- See Also:
- Constant Field Values
-
ENTITY_RESOLVER
protected static final String ENTITY_RESOLVER
Property identifier: entity resolver.- See Also:
- Constant Field Values
-
fSymbolTable
protected SymbolTable fSymbolTable
Symbol table.
-
fLocale
protected Locale fLocale
Locale.
-
fComponents
protected ArrayList fComponents
Components.
-
fDocumentHandler
protected XMLDocumentHandler fDocumentHandler
The document handler.
-
fDTDHandler
protected XMLDTDHandler fDTDHandler
The DTD handler.
-
fDTDContentModelHandler
protected XMLDTDContentModelHandler fDTDContentModelHandler
The DTD content model handler.
-
fLastComponent
protected XMLDocumentSource fLastComponent
Last component in the document pipeline
-
-
Constructor Detail
-
BasicParserConfiguration
protected BasicParserConfiguration()
Default Constructor.
-
BasicParserConfiguration
protected BasicParserConfiguration(SymbolTable symbolTable)
Constructs a parser configuration using the specified symbol table.- Parameters:
symbolTable- The symbol table to use.
-
BasicParserConfiguration
protected BasicParserConfiguration(SymbolTable symbolTable, XMLComponentManager parentSettings)
Constructs a parser configuration using the specified symbol table and parent settings.- Parameters:
symbolTable- The symbol table to use.parentSettings- The parent settings.
-
-
Method Detail
-
addComponent
protected void addComponent(XMLComponent component)
Adds a component to the parser configuration. This method will also add all of the component's recognized features and properties to the list of default recognized features and properties.- Parameters:
component- The component to add.
-
parse
public abstract void parse(XMLInputSource inputSource) throws XNIException, IOException
Parse an XML document.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.
- Specified by:
parsein interfaceXMLParserConfiguration- Parameters:
inputSource- The input source for the top-level of the XML document.- Throws:
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.
-
setDocumentHandler
public void setDocumentHandler(XMLDocumentHandler documentHandler)
Sets the document handler on the last component in the pipeline to receive information about the document.- Specified by:
setDocumentHandlerin interfaceXMLParserConfiguration- Parameters:
documentHandler- The document handler.
-
getDocumentHandler
public XMLDocumentHandler getDocumentHandler()
Returns the registered document handler.- Specified by:
getDocumentHandlerin interfaceXMLParserConfiguration
-
setDTDHandler
public void setDTDHandler(XMLDTDHandler dtdHandler)
Sets the DTD handler.- Specified by:
setDTDHandlerin interfaceXMLParserConfiguration- Parameters:
dtdHandler- The DTD handler.
-
getDTDHandler
public XMLDTDHandler getDTDHandler()
Returns the registered DTD handler.- Specified by:
getDTDHandlerin interfaceXMLParserConfiguration
-
setDTDContentModelHandler
public void setDTDContentModelHandler(XMLDTDContentModelHandler handler)
Sets the DTD content model handler.- Specified by:
setDTDContentModelHandlerin interfaceXMLParserConfiguration- Parameters:
handler- The DTD content model handler.
-
getDTDContentModelHandler
public XMLDTDContentModelHandler getDTDContentModelHandler()
Returns the registered DTD content model handler.- Specified by:
getDTDContentModelHandlerin interfaceXMLParserConfiguration
-
setEntityResolver
public void setEntityResolver(XMLEntityResolver resolver)
Sets the resolver used to resolve external entities. The EntityResolver interface supports resolution of public and system identifiers.- Specified by:
setEntityResolverin interfaceXMLParserConfiguration- Parameters:
resolver- The new entity resolver. Passing a null value will uninstall the currently installed resolver.
-
getEntityResolver
public XMLEntityResolver getEntityResolver()
Return the current entity resolver.- Specified by:
getEntityResolverin interfaceXMLParserConfiguration- Returns:
- The current entity resolver, or null if none has been registered.
- See Also:
setEntityResolver(org.smooks.engine.delivery.sax.ng.org.apache.xerces.xni.parser.XMLEntityResolver)
-
setErrorHandler
public void setErrorHandler(XMLErrorHandler errorHandler)
Allow an application to register an error event handler.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.
- Specified by:
setErrorHandlerin interfaceXMLParserConfiguration- Parameters:
errorHandler- The error handler.- Throws:
NullPointerException- If the handler argument is null.- See Also:
getErrorHandler()
-
getErrorHandler
public XMLErrorHandler getErrorHandler()
Return the current error handler.- Specified by:
getErrorHandlerin interfaceXMLParserConfiguration- Returns:
- The current error handler, or null if none has been registered.
- See Also:
setErrorHandler(org.smooks.engine.delivery.sax.ng.org.apache.xerces.xni.parser.XMLErrorHandler)
-
setFeature
public void setFeature(String featureId, boolean state) throws XMLConfigurationException
Set the state of a feature. Set the state of any feature in a SAX2 parser. The parser might not recognize the feature, and if it does recognize it, it might not be able to fulfill the request.- Specified by:
setFeaturein interfaceXMLParserConfiguration- Overrides:
setFeaturein classParserConfigurationSettings- Parameters:
featureId- The unique identifier (URI) of the feature.state- The requested state of the feature (true or false).- Throws:
XMLConfigurationException- If the requested feature is not known.
-
setProperty
public void setProperty(String propertyId, Object value) throws XMLConfigurationException
setProperty- Specified by:
setPropertyin interfaceXMLParserConfiguration- Overrides:
setPropertyin classParserConfigurationSettings- Parameters:
propertyId-value-- Throws:
XMLConfigurationException- If the requested feature is not known.
-
setLocale
public void setLocale(Locale locale) throws XNIException
Set the locale to use for messages.- Specified by:
setLocalein interfaceXMLParserConfiguration- Parameters:
locale- The locale object to use for localization of messages.- Throws:
XNIException- Thrown if the parser does not support the specified locale.
-
getLocale
public Locale getLocale()
Returns the locale.- Specified by:
getLocalein interfaceXMLParserConfiguration
-
reset
protected void reset() throws XNIExceptionreset all components before parsing and namespace context- Throws:
XNIException
-
checkProperty
protected void checkProperty(String propertyId) throws XMLConfigurationException
Check a property. If the property is known and supported, this method simply returns. Otherwise, the appropriate exception is thrown.- Overrides:
checkPropertyin classParserConfigurationSettings- Parameters:
propertyId- The unique identifier (URI) of the property being set.- Throws:
XMLConfigurationException- If the requested feature is not known or supported.
-
checkFeature
protected void checkFeature(String featureId) throws XMLConfigurationException
Check a feature. If feature is know and supported, this method simply returns. Otherwise, the appropriate exception is thrown.- Overrides:
checkFeaturein classParserConfigurationSettings- Parameters:
featureId- The unique identifier (URI) of the feature.- Throws:
XMLConfigurationException- Thrown for configuration error. In general, components should only throw this exception if it is really a critical error.
-
-