我的 XSD
文件仅定义了 5 种类型:
<xs:simpleType name="Types">
<xs:restriction base="xs:string">
<xs:enumeration value="TypeA" />
<xs:enumeration value="TypeB" />
<xs:enumeration value="TypeC" />
<xs:enumeration value="TypeD" />
<xs:enumeration value="TypeE" />
</xs:restriction>
</xs:simpleType>
但是假设用户发送了“TypeF
”,这不是有效类型,那么使用 jaxb 的 unmarshalling
完全忽略了该值,我想验证该值并向用户发送错误请求异常。
如何确保如果用户在 XML
中放入无效类型,它不会被忽略?
最佳答案
您可以在 Unmarshaller
上指定 ValidationEventHandler
实例,并在 handleEvent
方法上返回 false,以使 JAXB 因无效值而失败。
关于java - 解码、xml 到 java、XSD 中未定义的无效枚举值被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21490230/