3

我想用 JaXB 验证 xml 文档。

代码 :

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);

现在,如果文档对架构无效,我想得到错误。在示例中可以看到人们为此创建了 EventHandler 类(例如http://blog.bdoughan.com/2010/12/jaxb-and-marshalunmarshal-schema.html)。但也许存在更简单的方法来获得 conlose 和变量中的验证错误?

4

1 回答 1

4

ValidationEventHandler方法是您如何处理验证事件。如果您希望尽量减少需要编写的代码量,您可以执行以下操作:

    jaxbUnmarshaller.setEventHandler(new ValidationEventHandler() {

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

    });
于 2012-09-04T10:15:41.497 回答