JAXB不会在错误的dateTime值上抛出错误

nev*_*ver 5 java jaxb

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

<xsd:element name="Calling1" type="xsd:dateTime">
Run Code Online (Sandbox Code Playgroud)

我已经生成了Jaxb绑定:

 <xjc extension="true" schema="${basedir}/message.xsd"
  destdir="${basedir}/src" package="org.test"/>
Run Code Online (Sandbox Code Playgroud)

我正在使用JAXB将XML文档解组为Java表示.例如,如果我的XML包含Calling1元素,那么该值不是正确的dateTime

<Calling1>NOT_A_DATETIME</Calling1>
Run Code Online (Sandbox Code Playgroud)

JAXB不会抛出任何错误,但会返回一个java对象,其中属性calling1为null.

为什么我得到null,而不是错误?我怎样才能改变Jaxb的行为?

Bha*_*kar 4

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