当前位置: 首页 > 面试题库 >

处理JAXB集合

龙隐水
2023-03-14
问题内容

我正在尝试使用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();

我理解需要一个从XML派生的Composers对象,但是在使用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 插件不正是你想要的。



 类似资料:
  • 1.【强制】 关于 hashCode 和 equals 的处理,遵循如下规则: 1) 只要重写equals,就必须重写hashCode。 2) 因为Set存储的是不重复的对象,依据hashCode和equals进行判断,所以Set存储的 对象必须重写这两个方法。 3) 如果自定义对象做为Map的键,那么必须重写hashCode和equals。 说明: String 重写了 hashCode 和 e

  • 问题内容: 我有看起来像这样的XML: 我想使用JAXB进行阅读。 我知道我能做 如果XML看起来像 ,但是我对上面的XML布局怎么办? 问题答案: 注意: 我是EclipseLink JAXB(MOXy)的负责人,并且是JAXB 2.X(JSR-222)专家组的成员。 您可以在此用例中使用MOXy的扩展名:

  • 问题内容: 我知道JAXB(用于XML绑定的Java体系结构)可以编组/ 取消编组java.util.Date对象,如Blaise Doughan的回答所示 。 但有关新东西java.time包中的对象的Java 8,如?JAXB是否已更新以处理此新内置数据类型? 问题答案: 在Java SE 8中,JAXB尚未更新以支持 java.time 类型。 实际上,在参考实现中存在与此相关的问题。 您需

  • 问题内容: 我正在使用JAXB动态生成XML。 现在,我想使用XSL将其转换为HTML。我该如何包括 在动态生成的XML中? 问题答案: 这里的所有解决方案都非常丑陋和冗长。只需在Mashaller对象内部设置一行即可指定其他标题。 本示例将使用样式表将对象输出到文件,并很好地格式化元素以供人类阅读。该对象属于类,并将被写入file,并由给出的样式表设置格式: 更新资料 在最新版本的JAXB中,我

  • 我正在尝试使用restTemplate(Spring)和Jackson 2.3.0构建一个JSON Web服务消费者 问题在于pojo的绑定,如下所示: Jackson输出以下错误: org.springframework.http.converter.HttpMessageNotReadableException:无法读取JSON:无法识别的字段"montant_TTC"(类com.bouygt

  • 问题内容: 在过去的几天中,我尝试使用MOXy JAXB支持对Hibernate模型的XML编组/解组。尝试执行此操作时,我遇到了hibernate代理对象的问题。考虑类似: 我尝试通过以下方式使用MOXy JAXB映射此代码: 我的问题是,hibernate实例化了通过在User上调用getAddress()获得的地址的代理对象。然后,当JAXB尝试封送对象时,它无法发现它实际上是它要封送的Co