xml - JAXB:如何围绕 XmlRootElement 添加包装器?

标签 xml collections jaxb jaxb2

如果我想使用这样的 XML 文件,如何为 JAXB 注释 Bean?

<myobjects>
    <myobject id="1" active="true">
        <...>
    </myobject>
    <myobject id="2" active="true">
        <...>
    </myobject>
    ...
    <myobject id="666666" active="true">
        <...>
    </myobject>
</myobjects>

...XmlRootElements 的列表/集合将映射到.​​..

@XmlRootElement(name="myobject")
    public class XmlMyObjectDTO {
    private long id;

    public long getId() {
        return this.id;
    }
...
}

最佳答案

有几种方法可以处理这个用例。

选项 1 - 引入新的顶级类

您可以引入一个名为 XmlMyObjectDTOs 的新类,它包含一个 MyXmlObjectDTO 对象列表。或者,您可以编写一个通用包装类(请参阅下面相关答案的链接):

选项 2 - 将 JAXB 与 StAX 结合使用

您可以创建一个 XMLStreamWriter 来写出根元素,然后将对象集合编码到 XMLStreamWriter

关于xml - JAXB:如何围绕 XmlRootElement 添加包装器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21232405/

相关文章:

java - 在 Java 中使用数组解析复杂的 XML

php - 如何将多维 PHP 数组转换为 XML?

java - 如何找回 "Eclipse >Generate>Jaxb classes"选项?

java - 编码/解码 Java 方法

c# - XmlException : Document element did not appear - line 1, 位置 1

java - Guava:copyOf() 方法的 ImmutableList 魔法

java - 在 Hibernate 中将一个数据库关联拆分为多个集合

c# - Parallel.ForEach 同时保留顺序

java - 使用 JAXB 仅将最后一个元素写入 XML

java - SAX XML 解析器抛出空指针异常