Class XMLErrorReporter

  • All Implemented Interfaces:
    org.apache.xerces.xni.parser.XMLComponent

    public class XMLErrorReporter
    extends java.lang.Object
    implements org.apache.xerces.xni.parser.XMLComponent
    This class is a common element of all parser configurations and is used to report errors that occur. This component can be queried by parser components from the component manager using the following property ID:
       http://apache.org/xml/properties/internal/error-reporter
     

    Errors are separated into domains that categorize a class of errors. In a parser configuration, the parser would register a MessageFormatter for each domain that is capable of localizing error messages and formatting them based on information about the error. Any parser component can invent new error domains and register additional message formatters to localize messages in those domains.

    This component requires the following features and properties from the component manager that uses it:

    • http://apache.org/xml/properties/internal/error-handler

    This component can use the following features and properties but they are not required:

    • http://apache.org/xml/features/continue-after-fatal-error

    INTERNAL:

    Usage of this class is not supported. It may be altered or removed at any time.
    Version:
    $Id: XMLErrorReporter.java 718856 2008-11-19 04:54:03Z mrglavas $
    Author:
    Eric Ye, IBM, Andy Clark, IBM
    See Also:
    MessageFormatter
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static java.lang.String CONTINUE_AFTER_FATAL_ERROR
      Feature identifier: continue after fatal error.
      protected static java.lang.String ERROR_HANDLER
      Property identifier: error handler.
      protected boolean fContinueAfterFatalError
      Continue after fatal error feature.
      protected org.apache.xerces.xni.parser.XMLErrorHandler fDefaultErrorHandler
      Default error handler.
      protected org.apache.xerces.xni.parser.XMLErrorHandler fErrorHandler
      Error handler.
      protected java.util.Locale fLocale
      The locale to be used to format error messages.
      protected org.apache.xerces.xni.XMLLocator fLocator
      Document locator.
      protected java.util.Hashtable fMessageFormatters
      Mapping of Message formatters for domains.
      static short SEVERITY_ERROR
      Severity: error.
      static short SEVERITY_FATAL_ERROR
      Severity: fatal error.
      static short SEVERITY_WARNING
      Severity: warning.
    • Constructor Summary

      Constructors 
      Constructor Description
      XMLErrorReporter()
      Constructs an error reporter with a locator.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.apache.xerces.xni.parser.XMLErrorHandler getErrorHandler()
      Get the internal XMLErrrorHandler.
      boolean getFeature​(java.lang.String featureId)  
      java.lang.Boolean getFeatureDefault​(java.lang.String featureId)
      Returns the default state for a feature, or null if this component does not want to report a default value for this feature.
      java.util.Locale getLocale()
      Gets the current locale.
      MessageFormatter getMessageFormatter​(java.lang.String domain)
      Returns the message formatter associated with the specified domain, or null if no message formatter is registered for that domain.
      java.lang.Object getPropertyDefault​(java.lang.String propertyId)
      Returns the default state for a property, or null if this component does not want to report a default value for this property.
      java.lang.String[] getRecognizedFeatures()
      Returns a list of feature identifiers that are recognized by this component.
      java.lang.String[] getRecognizedProperties()
      Returns a list of property identifiers that are recognized by this component.
      org.xml.sax.ErrorHandler getSAXErrorHandler()
      Gets the internal XMLErrorHandler as SAX ErrorHandler.
      void putMessageFormatter​(java.lang.String domain, MessageFormatter messageFormatter)
      Registers a message formatter for the specified domain.
      MessageFormatter removeMessageFormatter​(java.lang.String domain)
      Removes the message formatter for the specified domain and returns the removed message formatter.
      java.lang.String reportError​(java.lang.String domain, java.lang.String key, java.lang.Object[] arguments, short severity)
      Reports an error.
      java.lang.String reportError​(java.lang.String domain, java.lang.String key, java.lang.Object[] arguments, short severity, java.lang.Exception exception)
      Reports an error.
      java.lang.String reportError​(org.apache.xerces.xni.XMLLocator location, java.lang.String domain, java.lang.String key, java.lang.Object[] arguments, short severity)
      Reports an error at a specific location.
      java.lang.String reportError​(org.apache.xerces.xni.XMLLocator location, java.lang.String domain, java.lang.String key, java.lang.Object[] arguments, short severity, java.lang.Exception exception)
      Reports an error at a specific location.
      void reset​(org.apache.xerces.xni.parser.XMLComponentManager componentManager)
      Resets the component.
      void setDocumentLocator​(org.apache.xerces.xni.XMLLocator locator)
      Sets the document locator.
      void setFeature​(java.lang.String featureId, boolean state)
      Sets the state of a feature.
      void setLocale​(java.util.Locale locale)
      Sets the current locale.
      void setProperty​(java.lang.String propertyId, java.lang.Object value)
      Sets the value of a property.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • SEVERITY_WARNING

        public static final short SEVERITY_WARNING
        Severity: warning. Warnings represent informational messages only that should not be considered serious enough to stop parsing or indicate an error in the document's validity.
        See Also:
        Constant Field Values
      • SEVERITY_ERROR

        public static final short SEVERITY_ERROR
        Severity: error. Common causes of errors are document structure and/or content that that does not conform to the grammar rules specified for the document. These are typically validation errors.
        See Also:
        Constant Field Values
      • SEVERITY_FATAL_ERROR

        public static final short SEVERITY_FATAL_ERROR
        Severity: fatal error. Fatal errors are errors in the syntax of the XML document or invalid byte sequences for a given encoding. The XML 1.0 Specification mandates that errors of this type are not recoverable.

        Note: The parser does have a "continue after fatal error" feature but it should be used with extreme caution and care.

        See Also:
        Constant Field Values
      • CONTINUE_AFTER_FATAL_ERROR

        protected static final java.lang.String CONTINUE_AFTER_FATAL_ERROR
        Feature identifier: continue after fatal error.
        See Also:
        Constant Field Values
      • ERROR_HANDLER

        protected static final java.lang.String ERROR_HANDLER
        Property identifier: error handler.
        See Also:
        Constant Field Values
      • fLocale

        protected java.util.Locale fLocale
        The locale to be used to format error messages.
      • fMessageFormatters

        protected java.util.Hashtable fMessageFormatters
        Mapping of Message formatters for domains.
      • fErrorHandler

        protected org.apache.xerces.xni.parser.XMLErrorHandler fErrorHandler
        Error handler.
      • fLocator

        protected org.apache.xerces.xni.XMLLocator fLocator
        Document locator.
      • fContinueAfterFatalError

        protected boolean fContinueAfterFatalError
        Continue after fatal error feature.
      • fDefaultErrorHandler

        protected org.apache.xerces.xni.parser.XMLErrorHandler fDefaultErrorHandler
        Default error handler. This error handler is only used in the absence of a registered error handler so that errors are not "swallowed" silently. This is one of the most common "problems" reported by users of the parser.
    • Constructor Detail

      • XMLErrorReporter

        public XMLErrorReporter()
        Constructs an error reporter with a locator.
    • Method Detail

      • setLocale

        public void setLocale​(java.util.Locale locale)
        Sets the current locale.
        Parameters:
        locale - The new locale.
      • getLocale

        public java.util.Locale getLocale()
        Gets the current locale.
        Returns:
        the current Locale
      • setDocumentLocator

        public void setDocumentLocator​(org.apache.xerces.xni.XMLLocator locator)
        Sets the document locator.
        Parameters:
        locator - The locator.
      • putMessageFormatter

        public void putMessageFormatter​(java.lang.String domain,
                                        MessageFormatter messageFormatter)
        Registers a message formatter for the specified domain.

        Note: Registering a message formatter for a domain when there is already a formatter registered will cause the previous formatter to be lost. This method replaces any previously registered message formatter for the specified domain.

        Parameters:
        domain -
        messageFormatter -
      • getMessageFormatter

        public MessageFormatter getMessageFormatter​(java.lang.String domain)
        Returns the message formatter associated with the specified domain, or null if no message formatter is registered for that domain.
        Parameters:
        domain - The domain of the message formatter.
      • removeMessageFormatter

        public MessageFormatter removeMessageFormatter​(java.lang.String domain)
        Removes the message formatter for the specified domain and returns the removed message formatter.
        Parameters:
        domain - The domain of the message formatter.
      • reportError

        public java.lang.String reportError​(java.lang.String domain,
                                            java.lang.String key,
                                            java.lang.Object[] arguments,
                                            short severity)
                                     throws org.apache.xerces.xni.XNIException
        Reports an error. The error message passed to the error handler is formatted for the locale by the message formatter installed for the specified error domain.
        Parameters:
        domain - The error domain.
        key - The key of the error message.
        arguments - The replacement arguments for the error message, if needed.
        severity - The severity of the error.
        Returns:
        The formatted error message.
        Throws:
        org.apache.xerces.xni.XNIException
        See Also:
        SEVERITY_WARNING, SEVERITY_ERROR, SEVERITY_FATAL_ERROR
      • reportError

        public java.lang.String reportError​(java.lang.String domain,
                                            java.lang.String key,
                                            java.lang.Object[] arguments,
                                            short severity,
                                            java.lang.Exception exception)
                                     throws org.apache.xerces.xni.XNIException
        Reports an error. The error message passed to the error handler is formatted for the locale by the message formatter installed for the specified error domain.
        Parameters:
        domain - The error domain.
        key - The key of the error message.
        arguments - The replacement arguments for the error message, if needed.
        severity - The severity of the error.
        exception - The exception to wrap.
        Returns:
        The formatted error message.
        Throws:
        org.apache.xerces.xni.XNIException
        See Also:
        SEVERITY_WARNING, SEVERITY_ERROR, SEVERITY_FATAL_ERROR
      • reportError

        public java.lang.String reportError​(org.apache.xerces.xni.XMLLocator location,
                                            java.lang.String domain,
                                            java.lang.String key,
                                            java.lang.Object[] arguments,
                                            short severity)
                                     throws org.apache.xerces.xni.XNIException
        Reports an error at a specific location.
        Parameters:
        location - The error location.
        domain - The error domain.
        key - The key of the error message.
        arguments - The replacement arguments for the error message, if needed.
        severity - The severity of the error.
        Returns:
        The formatted error message.
        Throws:
        org.apache.xerces.xni.XNIException
        See Also:
        SEVERITY_WARNING, SEVERITY_ERROR, SEVERITY_FATAL_ERROR
      • reportError

        public java.lang.String reportError​(org.apache.xerces.xni.XMLLocator location,
                                            java.lang.String domain,
                                            java.lang.String key,
                                            java.lang.Object[] arguments,
                                            short severity,
                                            java.lang.Exception exception)
                                     throws org.apache.xerces.xni.XNIException
        Reports an error at a specific location.
        Parameters:
        location - The error location.
        domain - The error domain.
        key - The key of the error message.
        arguments - The replacement arguments for the error message, if needed.
        severity - The severity of the error.
        exception - The exception to wrap.
        Returns:
        The formatted error message.
        Throws:
        org.apache.xerces.xni.XNIException
        See Also:
        SEVERITY_WARNING, SEVERITY_ERROR, SEVERITY_FATAL_ERROR
      • reset

        public void reset​(org.apache.xerces.xni.parser.XMLComponentManager componentManager)
                   throws org.apache.xerces.xni.XNIException
        Resets the component. The component can query the component manager about any features and properties that affect the operation of the component.
        Specified by:
        reset in interface org.apache.xerces.xni.parser.XMLComponent
        Parameters:
        componentManager - The component manager.
        Throws:
        SAXException - Thrown by component on initialization error. For example, if a feature or property is required for the operation of the component, the component manager may throw a SAXNotRecognizedException or a SAXNotSupportedException.
        org.apache.xerces.xni.XNIException - Thrown by component on initialization error.
      • getRecognizedFeatures

        public java.lang.String[] getRecognizedFeatures()
        Returns a list of feature identifiers that are recognized by this component. This method may return null if no features are recognized by this component.
        Specified by:
        getRecognizedFeatures in interface org.apache.xerces.xni.parser.XMLComponent
      • setFeature

        public void setFeature​(java.lang.String featureId,
                               boolean state)
                        throws org.apache.xerces.xni.parser.XMLConfigurationException
        Sets the state of a feature. This method is called by the component manager any time after reset when a feature changes state.

        Note: Components should silently ignore features that do not affect the operation of the component.

        Specified by:
        setFeature in interface org.apache.xerces.xni.parser.XMLComponent
        Parameters:
        featureId - The feature identifier.
        state - The state of the feature.
        Throws:
        SAXNotRecognizedException - The component should not throw this exception.
        SAXNotSupportedException - The component should not throw this exception.
        org.apache.xerces.xni.parser.XMLConfigurationException - Thrown for configuration error. In general, components should only throw this exception if it is really a critical error.
      • getFeature

        public boolean getFeature​(java.lang.String featureId)
                           throws org.apache.xerces.xni.parser.XMLConfigurationException
        Throws:
        org.apache.xerces.xni.parser.XMLConfigurationException
      • getRecognizedProperties

        public java.lang.String[] getRecognizedProperties()
        Returns a list of property identifiers that are recognized by this component. This method may return null if no properties are recognized by this component.
        Specified by:
        getRecognizedProperties in interface org.apache.xerces.xni.parser.XMLComponent
      • setProperty

        public void setProperty​(java.lang.String propertyId,
                                java.lang.Object value)
                         throws org.apache.xerces.xni.parser.XMLConfigurationException
        Sets the value of a property. This method is called by the component manager any time after reset when a property changes value.

        Note: Components should silently ignore properties that do not affect the operation of the component.

        Specified by:
        setProperty in interface org.apache.xerces.xni.parser.XMLComponent
        Parameters:
        propertyId - The property identifier.
        value - The value of the property.
        Throws:
        SAXNotRecognizedException - The component should not throw this exception.
        SAXNotSupportedException - The component should not throw this exception.
        org.apache.xerces.xni.parser.XMLConfigurationException - Thrown for configuration error. In general, components should only throw this exception if it is really a critical error.
      • getFeatureDefault

        public java.lang.Boolean getFeatureDefault​(java.lang.String featureId)
        Returns the default state for a feature, or null if this component does not want to report a default value for this feature.
        Specified by:
        getFeatureDefault in interface org.apache.xerces.xni.parser.XMLComponent
        Parameters:
        featureId - The feature identifier.
        Since:
        Xerces 2.2.0
      • getPropertyDefault

        public java.lang.Object getPropertyDefault​(java.lang.String propertyId)
        Returns the default state for a property, or null if this component does not want to report a default value for this property.
        Specified by:
        getPropertyDefault in interface org.apache.xerces.xni.parser.XMLComponent
        Parameters:
        propertyId - The property identifier.
        Since:
        Xerces 2.2.0
      • getErrorHandler

        public org.apache.xerces.xni.parser.XMLErrorHandler getErrorHandler()
        Get the internal XMLErrrorHandler.
      • getSAXErrorHandler

        public org.xml.sax.ErrorHandler getSAXErrorHandler()
        Gets the internal XMLErrorHandler as SAX ErrorHandler.