DOMErrorHandlerWrapperpublic class DOMErrorHandlerWrapper extends Object implements DOMErrorHandler, XMLErrorHandlerThis class handles DOM errors . |
Fields Summary |
---|
private static Hashtable | fgDOMErrorTypeTableMap for converting internal error codes to DOM error types. | protected DOMErrorHandler | fDomErrorHandler | boolean | eStatus | protected PrintWriter | fOut | public Node | fCurrentNode | protected final XMLErrorCode | fErrorCodeError code for comparisons. | protected final DOMErrorImpl | fDOMError |
Constructors Summary |
---|
public DOMErrorHandlerWrapper()
// initialize error type table: internal error codes (represented by domain and key) need to be mapped to a DOM error type.
fgDOMErrorTypeTable = new Hashtable();
fgDOMErrorTypeTable.put(new XMLErrorCode(XMLMessageFormatter.XML_DOMAIN, "DoctypeNotAllowed"), "doctype-not-allowed");
fgDOMErrorTypeTable.put(new XMLErrorCode(XMLMessageFormatter.XML_DOMAIN, "ElementUnterminated"), "wf-invalid-character-in-node-name");
fgDOMErrorTypeTable.put(new XMLErrorCode(XMLMessageFormatter.XML_DOMAIN, "EncodingDeclInvalid"), "unsupported-encoding");
fgDOMErrorTypeTable.put(new XMLErrorCode(XMLMessageFormatter.XML_DOMAIN, "EqRequiredInAttribute"), "wf-invalid-character-in-node-name");
fgDOMErrorTypeTable.put(new XMLErrorCode(XMLMessageFormatter.XML_DOMAIN, "LessthanInAttValue"), "wf-invalid-character");
fOut = new PrintWriter(System.err);
| public DOMErrorHandlerWrapper(DOMErrorHandler domErrorHandler)
fDomErrorHandler = domErrorHandler;
|
Methods Summary |
---|
public void | error(java.lang.String domain, java.lang.String key, com.sun.org.apache.xerces.internal.xni.parser.XMLParseException exception)Reports an error. Errors are non-fatal and usually signify that the
document is invalid with respect to its grammar(s).
fDOMError.fSeverity = DOMError.SEVERITY_ERROR;
fDOMError.fException = exception;
fDOMError.fType = key;
fDOMError.fRelatedData = fDOMError.fMessage = exception.getMessage();
DOMLocatorImpl locator = fDOMError.fLocator;
if (locator != null) {
locator.fColumnNumber = exception.getColumnNumber();
locator.fLineNumber = exception.getLineNumber();
locator.fUri = exception.getExpandedSystemId();
locator.fRelatedNode= fCurrentNode;
}
if (fDomErrorHandler != null) {
fDomErrorHandler.handleError(fDOMError);
}
| public void | fatalError(java.lang.String domain, java.lang.String key, com.sun.org.apache.xerces.internal.xni.parser.XMLParseException exception)Report a fatal error. Fatal errors usually occur when the document
is not well-formed and signifies that the parser cannot continue
normal operation.
Note: The error handler should always
throw an XNIException from this method. This exception
can either be the same exception that is passed as a parameter to
the method or a new XNI exception object. If the registered error
handler fails to throw an exception, the continuing operation of
the parser is undetermined.
fDOMError.fSeverity = DOMError.SEVERITY_FATAL_ERROR;
fDOMError.fException = exception;
fErrorCode.setValues(domain, key);
String domErrorType = (String) fgDOMErrorTypeTable.get(fErrorCode);
fDOMError.fType = (domErrorType != null) ? domErrorType : key;
fDOMError.fRelatedData = fDOMError.fMessage = exception.getMessage();
DOMLocatorImpl locator = fDOMError.fLocator;
if (locator != null) {
locator.fColumnNumber = exception.getColumnNumber();
locator.fLineNumber = exception.getLineNumber();
locator.fUri = exception.getExpandedSystemId();
locator.fRelatedNode = fCurrentNode;
}
if (fDomErrorHandler != null) {
fDomErrorHandler.handleError(fDOMError);
}
| public org.w3c.dom.DOMErrorHandler | getErrorHandler()
return fDomErrorHandler;
| public boolean | handleError(org.w3c.dom.DOMError error)
printError(error);
return eStatus;
| private void | printError(org.w3c.dom.DOMError error)Prints the error message.
int severity = error.getSeverity();
fOut.print("[");
if ( severity == DOMError.SEVERITY_WARNING) {
fOut.print("Warning");
} else if ( severity == DOMError.SEVERITY_ERROR) {
fOut.print("Error");
} else {
fOut.print("FatalError");
eStatus = false ; //REVISIT: Abort processing if fatal error, do we need to??
}
fOut.print("] ");
DOMLocator locator = error.getLocation();
if (locator != null) {
fOut.print(locator.getLineNumber());
fOut.print(":");
fOut.print(locator.getColumnNumber());
fOut.print(":");
fOut.print(locator.getByteOffset());
fOut.print(",");
fOut.print(locator.getUtf16Offset());
Node node = locator.getRelatedNode();
if (node != null) {
fOut.print("[");
fOut.print(node.getNodeName());
fOut.print("]");
}
String systemId = locator.getUri();
if (systemId != null) {
int index = systemId.lastIndexOf('/");
if (index != -1)
systemId = systemId.substring(index + 1);
fOut.print(": ");
fOut.print(systemId);
}
}
fOut.print(":");
fOut.print(error.getMessage());
fOut.println();
fOut.flush();
| public void | setErrorHandler(org.w3c.dom.DOMErrorHandler errorHandler)Sets the DOM error handler.
fDomErrorHandler = errorHandler;
| public void | warning(java.lang.String domain, java.lang.String key, com.sun.org.apache.xerces.internal.xni.parser.XMLParseException exception)Reports a warning. Warnings are non-fatal and can be safely ignored
by most applications.
fDOMError.fSeverity = DOMError.SEVERITY_WARNING;
fDOMError.fException = exception;
fDOMError.fType = key;
fDOMError.fRelatedData = fDOMError.fMessage = exception.getMessage();
DOMLocatorImpl locator = fDOMError.fLocator;
if (locator != null) {
locator.fColumnNumber = exception.getColumnNumber();
locator.fLineNumber = exception.getLineNumber();
locator.fUri = exception.getExpandedSystemId();
locator.fRelatedNode = fCurrentNode;
}
if (fDomErrorHandler != null) {
fDomErrorHandler.handleError(fDOMError);
}
|
|