Java 如何在jaxb中检测意外元素
我使用JAXB 2.2.7从XML文件中获取数据,问题是我需要检查XML文件中是否有一些意外的元素,但JAXB并不关心,而且工作正常,没有任何错误 例如:Java 如何在jaxb中检测意外元素,java,xml,xsd,jaxb,Java,Xml,Xsd,Jaxb,我使用JAXB 2.2.7从XML文件中获取数据,问题是我需要检查XML文件中是否有一些意外的元素,但JAXB并不关心,而且工作正常,没有任何错误 例如: <classe> <detail> <knowElementFromXSD>value</knowElementFromXSD> <unknowElementFromXSD>OtherValue</unknowElementFrom
<classe>
<detail>
<knowElementFromXSD>value</knowElementFromXSD>
<unknowElementFromXSD>OtherValue</unknowElementFromXSD>
</detail>
</classe>
价值
其他价值
例如,我需要JAXB为此XML文件中的抛出一个错误,因为在我的XSD中没有定义
如果有人有想法,我在互联网上找不到任何解决方案。有几种不同的方法来完成您的用例: 选项#1-
ValidationEventHandler
您可以在解组器上设置一个ValidationEventHandler
,以便收到诸如意外元素之类的通知。默认情况下,JAXB(JSR-222)实现只会忽略未映射的元素
选项#2-模式验证
如果在Unmarshaller
上设置javax.xml.validation.Schema
的实例,则xml输入将在其解组时进行验证
ValidationEventHandler
传递严重性较低的ValidationEvent
。默认的ValdatiionEventHandler
不会引发严重性较低的异常。您可以在Unmarshaller
上设置自己的“ValdationEventHandler”实现来更改此行为。Thk有关信息,请务必帮助我!