JAXB required = true似乎不需要

我们有这个JAXB注释:

@XmlElement(name = "Strategy", required = true) protected List strategy; 

如果没有Strategy元素存在,则不会抛出exception..为什么会这样? 我们不应该得到例外吗?

JAXB参考实现不使用此属性进行validation,它纯粹用于文档目的。

如果需要validation文档,则需要使用SchemaFactory定义XML Schema,并将其注入MarshallerUnmarshaller

此外,您可以使用beforeMarshalafterUnmarshal方法validationMarshaller和Unmarshaller中指定的输入。

访问这些方法的方案还允许您向方法声明添加任意throws子句。 这意味着在实现这些方法时,您可以安全地使用javax.xml.bind.MarshalExceptionjavax.xml.bind.UnmarshalException (或您想要的任何类型的Exception来发出validation错误信号。