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 のデフォルトの動作は、一致するすべての要素をchoice1 つの汎用リストに結合することです。マーシャリング時に正確なドキュメントを順序付けたり再作成したりすることは気にしないので、正確なレプリカではなく、データをより適切に整理する方が便利です。

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 に答える