java - JAXB @XmlValue 和 @XmlElements

标签 java xml jaxb

是否可以有一个用值 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;
  }

}

关于java - JAXB @XmlValue 和 @XmlElements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53529487/

相关文章:

java - 无法在 Eclipse Neon 上安装 TestNG。提示输入用户名和密码

javascript - 如何根据商品数量计算每件商品的价格?

java - XML文档设计

java - 如何在 xjc 命令行上使用 JAXB 扩展

java - JAXB 类中的嵌入属性

java - JodaTime toDate 给出了错误的日期

java - Spring 模拟 junit 测试使用 spring-security 3.2.0.RC1 版本抛出 NullPointerException

Java ArrayList 在自定义条件下删除重复项

c# - 如何解析 KML 文件以从 Placemark 元素检索坐标点?

java - 如何让 Maven 在 JDK 中使用不同的 JAXB 库