gpt4 book ai didi

java - 处理 JAXB 集合

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:19:01 25 4
gpt4 key购买 nike

我正在尝试使用 JAXB 解码以下 XML:

<Works>
<Work>
<Composers>
<Composer>
<Name>A name</Name>
</Composer>
<Composer>
<Name>A name 2</Name>
</Composer>
</Composers>
</Work>
</Works>

我已经使用 XJC 生成了所有类。如果我想访问 Composers 集合,我必须这样做:

 List<Composer> composers = work.getComposers().getComposer();

有什么方法可以改为执行以下操作吗?

 List<Composer> composers = work.getComposers();

我明白需要一个 Composers 对象,因为它派生自 XML,但是在处理 Java 时,拥有一个存储集合的中间 POJO 似乎有点多余。

我的 XSD 是:

<xsd:complexType name="Works">
<xsd:sequence>
<xsd:element name="Work" type="Work" maxOccurs="unbounded" minOccurs="0"></xsd:element>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="Work">
<xsd:sequence>
<xsd:element name="Composers" type="Composers"></xsd:element>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="Composers">
<xsd:sequence>
<xsd:element name="Composer" type="Composer" maxOccurs="unbounded" minOccurs="0"></xsd:element>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="Composer">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>

最佳答案

@XmlElementWrapper 插件完全符合您的要求。

关于java - 处理 JAXB 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7338245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com