java – 如何使用JAXB验证模式的XML?

前端之家收集整理的这篇文章主要介绍了java – 如何使用JAXB验证模式的XML?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 XML和JAXB,因为我将 XML解组和编组为 Java对象,反之亦然.现在我试图根据我们的schema(test.xsd)验证我们的XML.假设如果我的XML中缺少任何必需的字段,那么我想知道在对模式test.xsd验证XML之后哪个字段丢失了.
public void unmarshal(final InputStream is) {
    final XMLInputFactory factory = XMLInputFactory.newInstance();
    final XMLStreamReader reader = factory.createXMLStreamReader(is);

    Object req = unmarshaller.unmarshal(reader);

    // how would I validate here?
}

我将如何验证我的XML与test.xsd模式.我的test.xsd架构路径是 –

C:\workspace\one\two\three\src\main\java\com\package\serv\ap\versionOne\test.xsd

更新:将test.xsd加载为:

Schema schema = factorySchema.newSchema(new File("C:\\workspace\\one\\two\\three\\src\\main\\java\\com\\package\\serv\\ap\\versionOne\\test.xsd"));

解决方法

在您解除封锁之前,您只需要在Unmarshaller上设置一个 javax.xml.validation.Schema的实例.您可以在Unmarshaller上指定ValidationEventHandler的实现,以捕获在解组过程中发生的任何问题.

> http://docs.oracle.com/javase/7/docs/api/javax/xml/bind/Unmarshaller.html#setSchema%28javax.xml.validation.Schema%29

了解更多信息

我在博客上写了更多的这个用例:

> http://blog.bdoughan.com/2010/12/jaxb-and-marshalunmarshal-schema.html

猜你在找的Java相关文章