JAXB @XmlValue和@XmlElements

时间:2018-11-28 23:08:55

标签: java xml jaxb

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

我正在尝试渲染类似的东西:

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

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

具有值和元素的值为IllegalAnnotationExceptions

1 个答案:

答案 0 :(得分:1)

您显示的是完全有效的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;
  }

}