任意の順序で指定できる要素を定義する
要素の中に、ほかの要素を任意の順序で指定できるようにしたい場合は、allグループを使ってそれらの内部要素をグループ化します。
1. <xsd:all と入力して、順序なし要素グループを開始します。
2. 必要であれば、minOccurs属性とmaxOccurs属性を使って、順序なしグループ自体を指定できる回数を指定します。(「使用回数を指定する」)
3. > と入力して開始タグを終えます。
4. 順序なしグループ内の各要素を指定する順序で宣言または参照します。
5. </xsd:all> と入力します。
XSDコード <xsd:complexType name="subspeciesType"/>
<xsd:all>
<xsd:element ref="name" / >
<xsd:element name=region" type="xsd:string" minOccurs="0" / >
<xsd:element name="population">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:nonNegativeInteger">
<xsd:attribute name="year" type="xsd:year" / >
</xsd:extension>
</xsd:simpleContent>
</xsd:xomplexType>
</xsd:element>
</xsd:all>
</xsd:complexType>allグループを使って、subspeciesType型要素にname 要素、region要素を任意の順序で指定できるように定義しています。さらに、region要素のminOccurs属性を0に設定しているので、この要素は任意指定です。この要素は省略できます。
XMLコード <subscribes>
<name language=Japanese">鎌状赤血球症</name>
<population year="1999">501</population>
<region>ソマリア</region>
</subspecies>
<subscribes>
<population year="1998">315</population>
<name language=Japanese">HIV</name>
</subspecies>region要素は任意指定で順序は任意なので、これらのsubspecies要素はどちらもスキーマに対して有効です。
・allグループ内の要素は、任意の順序で1回または0回ずつ指定します(それぞれのminOccurs属性とmaxOccurs属性によって回数が決まります)。
・minOccurs属性とmaxOccurs属性は、0または1しか設定できません。
・allグループには、個々の要素の宣言または参照しか含めることができません。ほかのグループを含めることはできません。また、どの要素も複数回指定することはできません。
・allグループは、複雑型定義(「要素のみを含む要素を定義する」参照)、または名前付きグループ定義(「名前付きグループを参照する」参照)にしか含めることができません。これらの定義には、allグループとともに別のコンポーネントを含めることはできません。