java – 如何使用JAXB验证模式的XML?
发布时间:2020-12-14 16:36:48 所属栏目:Java 来源:网络整理
导读:我正在使用 XML和JAXB,因为我将 XML解组和编组为 Java对象,反之亦然.现在我试图根据我们的schema(test.xsd)验证我们的XML.假设如果我的XML中缺少任何必需的字段,那么我想知道在对模式test.xsd验证XML之后哪个字段丢失了. public void unmarshal(final InputS
我正在使用
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架构路径是 –
更新:将test.xsd加载为: Schema schema = factorySchema.newSchema(new File("C:workspaceonetwothreesrcmainjavacompackageservapversionOnetest.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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |