JAXB

时间:2015-07-02 14:56:25

标签: java xml jaxb

我正在创建可能与以下任一XML元素相关的JAXB类:

<Request>
  <Details/>
  <Option1/>
</Request>

<Request>
  <Details/>
  <Option2/>
</Request>

换句话说,Option1和Option2元素在Request类中都是可选的,但是一个必须才能使XML有效 - 就像异或一样。是否有一个JAXB注释我可以在我的Request类中使用它来指定它?或者其他任何工作?

1 个答案:

答案 0 :(得分:2)

您可以在Request类中实施callback method并以编程方式执行验证:

private void afterUnmarshal(Unmarshaller unmarshaller, Object parent) {
   if ((option1 == null) == (option2 == null)) {
      throw new ValidationException();
   }
}