import java.io.StringReader; import javax.xml.bind.*; import javax.xml.bind.util.ValidationEventCollector; public class Demo { private static String XML = "<foo><bar>Hello World</bar></foo>"; public static void main(String[] args) throws Exception { JAXBContext jc = JAXBContext.newInstance(Foo.class); Unmarshaller unmarshaller = jc.createUnmarshaller(); unmarshaller.unmarshal(new StringReader(XML)); ValidationEventCollector vec = new ValidationEventCollector(); unmarshaller.setEventHandler(vec); unmarshaller.unmarshal(new StringReader(XML)); System.out.println(vec.getEvents().length); } }
/** * Return the error message associated with the last reading of a config * file. * @TODO capture the error message from any exceptions also. * @return */ public String getErrorMessage() { if (!loadok) { if (handler.hasEvents()) { StringBuffer error = new StringBuffer(); for (ValidationEvent event : handler.getEvents()) { error.append(event.toString()); error.append("\n"); } return error.toString(); } else { return "unknown error - see log files for more detail"; } } else { return null; } } }
for(ValidationEvent event:validationCollector.getEvents())
if (validationEventCollector.hasEvents()) { StringBuffer errmsg = new StringBuffer(); for (ValidationEvent err : validationEventCollector.getEvents()) { errmsg.append(err.toString()); errmsg.append("\n");
private static void logValidationEvents(URL pluginJarFileUrl, ValidationEventCollector validationEventCollector, Log logger) { for (ValidationEvent event : validationEventCollector.getEvents()) {
for (ValidationEvent event : validationCollector.getEvents()) { String msg = event.getMessage(); ValidationEventLocator locator = event.getLocator();
for (ValidationEvent valEvent : valEventHndlr.getEvents()) { if (valEvent.getSeverity() != ValidationEvent.WARNING) {
for (ValidationEvent valEvent : valEventHndlr.getEvents()) { if (valEvent.getSeverity() != ValidationEvent.WARNING) {
for (ValidationEvent valEvent : valEventHndlr.getEvents()) { if (valEvent.getSeverity() != ValidationEvent.WARNING) {
for (ValidationEvent valEvent : valEventHndlr.getEvents()) { if (valEvent.getSeverity() != ValidationEvent.WARNING) {
/** Generate a JAXB unmarshal exception due to validation problems. */ private static <T> InvalidDataException generateValidationError(Class<T> type, ValidationEventCollector eventHandler) { InvalidDataException invalid = getUnmarshalError(type, null); invalid.getDetails().addMessage(ERROR_KEY, "Found validation errors"); for (ValidationEvent event : eventHandler.getEvents()) { invalid.getDetails().addMessage(ERROR_KEY, event.getMessage()); } return invalid; }
for (ValidationEvent valEvent : valEventHndlr.getEvents()) { if (valEvent.getSeverity() != ValidationEvent.WARNING) {
for (ValidationEvent valEvent : valEventHndlr.getEvents()) { if (valEvent.getSeverity() != ValidationEvent.WARNING) {
for (ValidationEvent valEvent : valEventHndlr.getEvents()) { if (valEvent.getSeverity() != ValidationEvent.WARNING) {
/** * Output parse errors. * * @param fullResourceName the full resource name * @param vec the vec * @param xsdURL the xsd URL */ private static void outputParseErrors( String fullResourceName, ValidationEventCollector vec, URL xsdURL) { if (vec.hasEvents()) { for (ValidationEvent ve : vec.getEvents()) { String msg = ve.getMessage(); ValidationEventLocator vel = ve.getLocator(); String message = String.format( "%s %s %s %s %s %d %s %d %s", Localisation.getField(ParseXML.class, "ParseXML.failedToValidate"), fullResourceName, Localisation.getField(ParseXML.class, "ParseXML.usingXSD"), xsdURL.toString(), Localisation.getField(ParseXML.class, "ParseXML.line"), vel.getLineNumber(), Localisation.getField(ParseXML.class, "ParseXML.column"), vel.getColumnNumber(), msg); ConsoleManager.getInstance().error(ParseXML.class, message); } } }
for(ValidationEvent event : validationEventCollector.getEvents()){ validationErrors += "Event: " + event.getMessage() + " ";
for(ValidationEvent event : validationEventCollector.getEvents()){ validationErrors += "Event: " + event.getMessage() + " ";