org.apache.xerces.impl

Class XMLErrorReporter

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:

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

Version:
$Id: XMLErrorReporter.java,v 1.16 2005/06/24 17:56:41 mrglavas Exp $
Authors:
Eric Ye, IBM
Andy Clark, IBM
See Also:
MessageFormatter

Field Summary

protected static String
CONTINUE_AFTER_FATAL_ERROR
Feature identifier: continue after fatal error.
protected static String
ERROR_HANDLER
Property identifier: error handler.
static short
SEVERITY_ERROR
Severity: error.
static short
SEVERITY_FATAL_ERROR
Severity: fatal error.
static short
SEVERITY_WARNING
Severity: warning.
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 Locale
fLocale
The locale to be used to format error messages.
protected org.apache.xerces.xni.XMLLocator
fLocator
Document locator.
protected Hashtable
fMessageFormatters
Mapping of Message formatters for domains.

Constructor Summary

XMLErrorReporter()
Constructs an error reporter with a locator.

Method Summary

org.apache.xerces.xni.parser.XMLErrorHandler
getErrorHandler()
Get the internal XMLErrrorHandler.
boolean
getFeature(String featureId)
Boolean
getFeatureDefault(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.
Locale
getLocale()
Gets the current locale.
MessageFormatter
getMessageFormatter(String domain)
Returns the message formatter associated with the specified domain, or null if no message formatter is registered for that domain.
Object
getPropertyDefault(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.
String[]
getRecognizedFeatures()
Returns a list of feature identifiers that are recognized by this component.
String[]
getRecognizedProperties()
Returns a list of property identifiers that are recognized by this component.
ErrorHandler
getSAXErrorHandler()
Gets the internal XMLErrorHandler as SAX ErrorHandler.
void
putMessageFormatter(String domain, MessageFormatter messageFormatter)
Registers a message formatter for the specified domain.
MessageFormatter
removeMessageFormatter(String domain)
Removes the message formatter for the specified domain and returns the removed message formatter.
void
reportError(String domain, String key, Object[] arguments, short severity)
Reports an error.
void
reportError(org.apache.xerces.xni.XMLLocator location, String domain, String key, Object[] arguments, short severity)
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(String featureId, boolean state)
Sets the state of a feature.
void
setLocale(Locale locale)
Sets the current locale.
void
setProperty(String propertyId, Object value)
Sets the value of a property.

Field Details

CONTINUE_AFTER_FATAL_ERROR

protected static final String CONTINUE_AFTER_FATAL_ERROR
Feature identifier: continue after fatal error.

ERROR_HANDLER

protected static final String ERROR_HANDLER
Property identifier: error handler.

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.
Field Value:
1

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.

Field Value:
2

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.
Field Value:
0

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.

fErrorHandler

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

fLocale

protected Locale fLocale
The locale to be used to format error messages.

fLocator

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

fMessageFormatters

protected Hashtable fMessageFormatters
Mapping of Message formatters for domains.

Constructor Details

XMLErrorReporter

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

Method Details

getErrorHandler

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

getFeature

public boolean getFeature(String featureId)
            throws org.apache.xerces.xni.parser.XMLConfigurationException

getFeatureDefault

public Boolean getFeatureDefault(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

getLocale

public Locale getLocale()
Gets the current locale.
Returns:
the current Locale

getMessageFormatter

public MessageFormatter getMessageFormatter(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.

getPropertyDefault

public Object getPropertyDefault(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

getRecognizedFeatures

public 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

getRecognizedProperties

public 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

getSAXErrorHandler

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

putMessageFormatter

public void putMessageFormatter(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 -

removeMessageFormatter

public MessageFormatter removeMessageFormatter(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 void reportError(String domain,
                        String key,
                        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.

reportError

public void reportError(org.apache.xerces.xni.XMLLocator location,
                        String domain,
                        String key,
                        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.

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.

setDocumentLocator

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

setFeature

public void setFeature(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.

setLocale

public void setLocale(Locale locale)
Sets the current locale.
Parameters:
locale - The new locale.

setProperty

public void setProperty(String propertyId,
                        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.

Copyright B) 1999-2005 Apache XML Project. All Rights Reserved.