是否有可能使用值AND元素呈现的JAXB元素?

我正在尝试渲染如下内容:

<thing>
    <otherthing></otherthing>
    This is some text
</thing>


知道可能甚至不是有效的XML,但不幸的是,我尝试呈现的内容需要它,并且不是可选的。

有一个值和元素给一个IllegalAnnotationExceptions

最佳答案

您所显示的是完全有效的XML。具有text()element子元素的元素称为mixed content

使用@XmlMixed JAXB批注而不是@XmlValue表示元素是混合内容。

import java.util.*;
import javax.xml.bind.annotation.*;

@XmlRootElement
public class Thing {

  private List<Object> mixedContent = new ArrayList<Object>();

  @XmlElementRef(name="thing", type=Thing.class)
  @XmlMixed
  public List<Object> getMixedContent() {
    return mixedContent;
  }

  public void setMixedContent(List<Object> mixedContent) {
     this.mixedContent = mixedContent;
  }

}

10-06 03:42