我有一个XML模式,其中元素Calling1的定义如下:

<xsd:element name="Calling1" type="xsd:dateTime">

我已经生成了Jaxb绑定(bind):
 <xjc extension="true" schema="${basedir}/message.xsd"
  destdir="${basedir}/src" package="org.test"/>

我正在使用JAXB将XML文档解码为Java表示形式。
如果我的XML可以包含元素Calling1,则该值不是正确的dateTime,例如
<Calling1>NOT_A_DATETIME</Calling1>

JAXB不会引发任何错误,但是会向我返回一个java对象,该对象的calling1属性为null。

为什么我会得到null,而不是Error?我该如何改变Jaxb的行为?

最佳答案

您是否通过调用UnmarshallersetSchema上设置了架构?您需要指定xsd文件以及Schema NS URI才能进行验证

10-08 13:20