我正在创建可能与以下任一XML元素相关的JAXB类:
<Request>
<Details/>
<Option1/>
</Request>
<Request>
<Details/>
<Option2/>
</Request>
换句话说,Option1和Option2元素在Request类中都是可选的,但是一个必须才能使XML有效 - 就像异或一样。是否有一个JAXB注释我可以在我的Request类中使用它来指定它?或者其他任何工作?
答案 0 :(得分:2)
您可以在Request
类中实施callback method并以编程方式执行验证:
private void afterUnmarshal(Unmarshaller unmarshaller, Object parent) {
if ((option1 == null) == (option2 == null)) {
throw new ValidationException();
}
}