java - JAXB 没有按预期编码

标签 java xml jaxb marshalling

我的一个 friend 让我发布这个问题:

编辑:他决定在这里自己发布问题:JAXB Unmarshalls XML Incorrectly我试图删除这个问题,但不能。

我正在尝试编码一个名为 MyContainer 的 Java 类.这个类扩展了我的另一个类,称为 Container . Container有一个名为:protected List<ResourceReference<Component>> child 的变量

唯一的变量MyContainer has 是它从 Container 继承的那个.这List ,但是,当我将 child 列为 XmlList 时,不会使用 JAXB 编码.

它将编码为 XmlElement ,但这不是我想要显示数据的方式。当它被编码为 XmlElement 时, 它列出了 List 中的属性,但不是“继承”它只是列出两个元素,就好像它们是类的属性,而不是属于子列表。

如何让 Jaxb 编码 List (它被实例化为 ArrayList)正确吗?

编辑:这是一个例子: 这就是我得到的:

<MyContainer name="Container Name">
    <booleanVal>false</booleanVal>
    <child id="Test Comp 1"/>
    <child id="Test Comp 2"/>
</and>

这更符合我的期望:

<MyContainer name="Container Name">
    <booleanVal>false</booleanVal>
    <child> /// This would be the class variable of the extended Class, Container
        <ResourceRef id="Entry 1">
        <ResourceRef id="Entry 2">
    </child>
</and>

诚然,我目前的结果可能来自标有@XmlElement 注释的Container 中的List。但是,JAXB 不会编码任何其他内容。

最佳答案

使用 @XmlElementWrapper 注释您的列表。参见 javadoc .

关于java - JAXB 没有按预期编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6915201/

相关文章:

java - Spring MVC 一个表单将数据提供给另一个表单

xml - targetNamespace 和 xmlns

java - 为有效 xml 创建 Diff 对象时,XMLUnit 抛出 NullPointerException

xml - 用于 Linux 的开源命令行工具,用于区分忽略元素顺序的 XML 文件

列表大小 1 的 Java JSON 映射

java - 无法解析 REST Web 服务中的 JSON

java - 在 android 上使用 jackson-dataformat-xml

java - 为什么对数组进行排序/初始化不计入 Big O 中?

java - 为什么 1971 年 11 月 1 日之前的日期要在 java.util.Date 上添加一个小时?

java - 如何从属性文件中获取值到 Jsp/tagx 中