我们有这个JAXB注释:
@XmlElement(name = "Strategy", required = true)
protected List<Strategy> strategy;
如果没有Strategy
个元素,则不会抛出任何异常..为什么会这样?我们不应该得到例外吗?
答案 0 :(得分:36)
JAXB参考实现不使用此属性进行验证,纯粹出于文档目的。
如果您需要验证文档,则需要定义XML Schema,并使用Marshaller
将其注入Unmarshaller
或SchemaFactory
。
答案 1 :(得分:1)
此外,您可以使用beforeMarshal
和afterUnmarshal
方法验证Marshaller和Unmarshaller中指定的输入。
访问这些方法的方案还允许您向方法声明添加任意throws
子句。这意味着在实施这些方法时,您可以安全地使用javax.xml.bind.MarshalException
和javax.xml.bind.UnmarshalException
(或任何类型的Exception
来表示验证错误。