是否可以使用以下模式:
<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>
..要以不同的元素类型在不同的列表中的方式进行解组? e.g:
public class GroupType {
List<PageType> page;
List<GroupType> group;
ResourcesType resources;
...
}
JAXB的默认行为是将与choice
匹配的所有元素组合到一个通用列表中。我不关心在编组时订购或重新创建确切的文档,因此更方便地组织数据而不是精确的副本。
答案 0 :(得分: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
的预构建类
了解更多信息