1

是否可以使用以下模式:

<xs:complexType name="GroupType">
    <xs:sequence>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element type="PageType" name="Page" minOccurs="0" maxOccurs="unbounded"/>           
            <xs:element type="GroupType" name="Group" minOccurs="0" maxOccurs="unbounded"/>                
            <xs:element type="ResourcesType" name="Resources" minOccurs="0" maxOccurs="1"/>
        </xs:choice>
    </xs:sequence>
</xs:complexType>

..以不同的元素类型在不同的列表中的方式解组?例如:

public class GroupType {
    List<PageType> page;
    List<GroupType> group;
    ResourcesType resources;
    ...
}

JAXB 的默认行为是将所有匹配的元素组合choice到一个通用列表中。我不关心在编组时订购或重新创建确切的文档,因此更好地组织数据而不是精确的副本会很方便。

4

1 回答 1

1

从 POJO 开始,您可以如下注释您的类:

@XmlAccessorType(XmlAccessType.FIELD)
public class GroupType {
    @XmlElement(name="Page")
    List<PageType> page;

    @XmlElement(name="Group)
    List<GroupType> group;

    @XmlElement(name="Resources")
    ResourcesType resources;
    ...
}

如果您从 XML 模式生成类,那么您可以使用外部绑定文件来指定您有一个预构建的类GroupType

了解更多信息

于 2012-01-31T01:31:46.883 回答