Monday, 12 August 2013

How to check for which particular node an exception was thrown in ValidationEventHandler

How to check for which particular node an exception was thrown in
ValidationEventHandler

import javax.xml.bind.ValidationEvent; import
javax.xml.bind.ValidationEventHandler;
public final class MyValidationEventHandler implements
ValidationEventHandler{
public boolean handleEvent(ValidationEvent event) {
System.out.println("\nEVENT");
System.out.println("SEVERITY: " + event.getSeverity());
System.out.println("MESSAGE: " + event.getMessage());
System.out.println("LINKED EXCEPTION: " + event.getLinkedException());
System.out.println("LOCATOR");
System.out.println(" LINE NUMBER: " +
event.getLocator().getLineNumber());
System.out.println(" COLUMN NUMBER: " +
event.getLocator().getColumnNumber());
System.out.println(" OFFSET: " + event.getLocator().getOffset());
System.out.println(" OBJECT: " + event.getLocator().getObject());
System.out.println(" NODE: " + event.getLocator().getNode());
System.out.println(" URL: " + event.getLocator().getURL());
return false;
}
}
I want to find out, while parsing, which particular XML node I received
the exception from. Based on that I can return a Boolean value. I don't
want to throw an exception to the caller for all elements which are
validated by a customized validator after successful unmarshalling.

No comments:

Post a Comment