如何生成JAXB POJO,其中包含其他类型的元素的列表

问题描述

我正在创建这个新元素 DocumentInfoList ,我想包含另一个已经定义的元素DocumentInfo的列表:

<xs:element name="DocumentInfoList">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="DocumentInfo" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

DocumentInfo 已经定义如下:

<xs:element name="DocumentInfo">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="version" type="xs:dateTime"/>
            <xs:element name="year" type="type:Year" minOccurs="0"/>
            <xs:element name="context" type="xs:string" default="NONE"/>
            <xs:element name="format" type="type:FormatType" default="JSON"/>
            <xs:element name="document" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

注意,我在DocumentInfoList.DocumentInfo上缺少type属性,因此生成的pojo具有通用对象的类型。

如何使DocumentInfoList包含DocumentInfo元素列表?

我尝试这样做:

<xs:element name="DocumentInfo" type="DocumentInfo" minOccurs="1" maxOccurs="unbounded"/>

但这显然失败了,因为DocumentInfo是元素而不是类型。我也尝试使用类似的东西:

<xs:element ref="DocumentInfo" minOccurs="1" maxOccurs="unbounded"/>

作为对其他元素的引用,但这似乎并不奏效。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)