JAXB将分组元素添加到列表中,类似.NET

时间:2012-06-28 13:07:03

标签: java jaxb xml-serialization

我正在使用在.NET应用程序中生成和使用的xml文件。

我需要在Java中反序列化此文件并选择使用JAXB。

但是,在尝试创建匹配类后,我发现了一个主要的区别。

有一个

@XmlRootElement
public class SomeClass{ 
    List<NestedClass> classes;
}

我得到以下结构:

 <SomeClass>
        ...
        <NestedClasses>
        ...
        </NestedClasses>
        <NestedClasses>
        ...
        </NestedClasses>
    </SomeClass>

选择现有的结构:

<SomeClass>
        ...
        <NestedClasses>
          <NestedClass>
          ...
          </NestedClass>
          <NestedClass>
          ...
          </NestedClass>
        </NestedClasses>
    </SomeClass>

是否有办法获得我所需的结构而不添加只包含嵌套类列表的类?

1 个答案:

答案 0 :(得分:0)

您需要有一个包装集合的类。要获得所需的映射,可以使用@XmlElementWrapper注释指定应使用分组元素。然后,您可以使用@XmlElement注释指定表示集合中项目的元素的名称:

@XmlRootElement
public class SomeClass{ 
    @XmlElementWrapper
    @XmlElement(name="NestedClass")
    List<NestedClass> classes;
}

了解更多信息

相关问题