2012-09-04 63 views
3

我想用JaXB驗證xml文檔。最簡單的JaXB驗證

代碼:

SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 
Schema schema = factory.newSchema(new StreamSource(new File("D:/liferay-develop/workspace/cat_test/v2/STD_MP.xsd"))); 
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); 
jaxbUnmarshaller.setSchema(schema); 

現在我想,如果沒有文件來的Valide架構得到錯誤。在示例中,可以看到人們爲此創建了EventHandler類(如http://blog.bdoughan.com/2010/12/jaxb-and-marshalunmarshal-schema.html)。但也許存在更簡單的方法來得到驗證錯誤在conlose和變量?

回答

4

ValidationEventHandler方法是如何處理驗證事件。如果您希望儘量減少需要編寫的代碼量,則可以執行以下操作:

jaxbUnmarshaller.setEventHandler(new ValidationEventHandler() { 

     @Override 
     public boolean handleEvent(ValidationEvent event) { 
      System.out.println(event.getMessage()); 
      return true; 
     } 

    }); 
+1

謝謝它的工作。 –