2

我使用 JAXB 2.2.7 从我的 XML 文件中获取数据,问题是我需要检查我的 XML 文件中是否有一些意外元素,但 JAXB 不在乎并且可以完美地工作而没有任何错误。

例子 :

    <classe> 
  <detail>
        <knowElementFromXSD>value</knowElementFromXSD>
        <unknowElementFromXSD>OtherValue</unknowElementFromXSD>
  </detail>
</classe>

例如,我需要 JAXB 在此 XML 文件中引发错误,因为在我的 XSD 中没有定义。

如果有人有想法,我在互联网上找不到任何解决方案。

4

1 回答 1

3

有几种不同的方法可以完成您的用例:

选项1 -ValidationEventHandler

您可以ValidationEventHandler在 Unmarshaller 上设置 a 以收到意外元素等事件的通知。默认情况下,JAXB (JSR-222) 实现将忽略未映射的元素。

选项 #2 - 模式验证

如果您在 上设置一个实例,javax.xml.validation.SchemaUnmarshallerXML 输入将在未编组时进行验证。

于 2012-10-30T17:05:16.723 回答