- From: Mercurial notifier <nobody@w3.org>
- Date: Wed, 07 Jul 2010 14:12:15 +0000
- To: Unicorn Updates <www-validator-cvs@w3.org>
changeset: 1313:6191eb74a4f4 user: Thomas Gambet <tgambet@w3.org> date: Tue Jul 06 17:39:28 2010 -0400 files: src/org/w3c/unicorn/response/impl/DefaultResponseXBeans.java description: added error messages for invalid responses diff -r 967d3db2e09d -r 6191eb74a4f4 src/org/w3c/unicorn/response/impl/DefaultResponseXBeans.java --- a/src/org/w3c/unicorn/response/impl/DefaultResponseXBeans.java Tue Jul 06 17:38:55 2010 -0400 +++ b/src/org/w3c/unicorn/response/impl/DefaultResponseXBeans.java Tue Jul 06 17:39:28 2010 -0400 @@ -6,12 +6,14 @@ import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; +import java.util.Collection; import java.util.Date; import java.util.Hashtable; import java.util.Iterator; import java.util.List; import java.util.Map; +import org.apache.xmlbeans.XmlError; import org.apache.xmlbeans.XmlException; import org.apache.xmlbeans.XmlObject; import org.apache.xmlbeans.XmlOptions; @@ -52,10 +54,20 @@ this.observerID = observerID; try { + Collection<XmlError> errorList = new ArrayList<XmlError>(); + XmlOptions xo = new XmlOptions(); + xo.setUseDefaultNamespace(); + xo.setErrorListener(errorList); ord = ObservationresponseDocument.Factory.parse(is, new XmlOptions().setCharacterEncoding(charset)); or = ord.getObservationresponse(); - if (!or.validate()) - throw new UnicornException(new org.w3c.unicorn.util.Message(2, "$message_response_validation_error", null, Framework.mapOfObserver.get(observerID).getName(Property.get(getLang())))); + if (!or.validate(xo)) { + String content = ""; + content += "Errors: " + errorList.size(); + for (XmlError error : errorList) { + content += "\n" + error.getMessage(); + } + throw new UnicornException(new org.w3c.unicorn.util.Message(2, "$message_response_validation_error", content, Framework.mapOfObserver.get(observerID).getName(Property.get(getLang())))); + } } catch (XmlException e) { if (e.getMessage().contains("document element namespace mismatch")) throw new UnicornException(new org.w3c.unicorn.util.Message(org.w3c.unicorn.util.Message.ERROR, "$message_response_invalid_schema", null, Framework.mapOfObserver.get(observerID).getName(Property.get("DEFAULT_LANGUAGE"))));
Received on Wednesday, 7 July 2010 14:12:16 UTC