【发布时间】:2020-04-22 17:03:53
【问题描述】:
在我们的应用程序中,用户正在发送如下 XML:
<Decl>
<MessageHeader>
<A>Info</A>
<B>Info2</B>
</MessageHeader>
</Decl>
并使用 JABX unmarshller 填充 java 对象。 但问题是客户要求在他/她时生成错误 发送如下消息:
<Decl>
<MessageHeader>
<A>Info</A>
<B>Info2</B>
</MessageHeader>
<MessageHeader>
<A>Info3</A>
<B>Info4</B>
</MessageHeader>
</Decl>
JAXB 成功解组 xml 并使用第二个 MessageHeader 对象填充对象。请注意 MessageHeader 不是 List 类型。 有没有办法阻止 JAXB 像这样运行,它应该抛出 ParsingException。由于某种原因,我们不能在解析之前使用 xml 的模式验证。但是有什么方法可以指示 JAXB 解析器检查目标类型是否为列表并抛出错误。
非常感谢。
【问题讨论】:
标签: java xml xsd jaxb unmarshalling