我使用JAXB 2.2.7从我的XML文件中获取数据,问题是我需要检查我的XML文件中是否有一些意外的元素,但是JAXB并不关心并且没有任何错误地完美地工作。
示例:
<classe>
<detail>
<knowElementFromXSD>value</knowElementFromXSD>
<unknowElementFromXSD>OtherValue</unknowElementFromXSD>
</detail>
</classe>
例如,我需要JAXB为此XML文件引发错误,因为未在我的XSD中定义。
如果有人有想法,我在互联网上找不到任何解决方案。
答案 0 :(得分:3)
有几种不同的方法可以完成您的用例:
选项#1 - ValidationEventHandler
您可以在Unmarshaller上设置ValidationEventHandler
,以便收到意外元素之类的通知。默认情况下,JAXB(JSR-222)实现将忽略未映射的元素。
选项#2 - 架构验证
如果在javax.xml.validation.Schema
上设置Unmarshaller
的实例,那么XML输入将被验证,因为它是未编组的。