一部の XSD は、XML 内でのデータの出現順序が特別な重要性を持つような方法で定義されます。
XSD での順序の重要度を示す例の 1 つは、混合内容です。テキスト・データが、あるエレメントの前か後に出現する場合、そのデータは、別の場所で出現した場合とは異なる意味を持つことがあります。そのようなシチュエーションでは、SDO は Sequence というオブジェクトを生成します。このオブジェクトは、順序を付けてデータを設定するために使用されます。
SDO Sequence を XSD シーケンスと混同しないでください。XSD シーケンスは、SDO モデルの生成の前にフラット化される単なるモデル・グループです。XSD シーケンスの存在は、SDO Sequence の存在とは関係ありません。
XSD 内の以下の条件により、SDO Sequence が生成されます。
混合内容を持つ complexType:
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://MixedContent" targetNamespace="http://MixedContent"> <xsd:complexType name="MixedContent" mixed="true"> <xsd:sequence> <xsd:element name="element1" type="xsd:string" minOccurs="0"/> <xsd:element name="element2" type="xsd:string" minOccurs="0"/> <xsd:element name="element3" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:complexType> <xsd:element name="MixedContent" type="tns:MixedContent"/> </xsd:schema>
1 つ以上の <any/> タグを持つスキーマ:
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://AnyElemAny" targetNamespace="http://AnyElemAny"> <xsd:complexType name="AnyElemAny"> <xsd:sequence> <xsd:any/> <xsd:element name="marker1" type="xsd:string"/> <xsd:any/> </xsd:sequence> </xsd:complexType> </xsd:schema>
モデル・グループ配列 (maxOccurs > 1 の all、choice、sequence、または group 参照):
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ModelGroupArray"> <xsd:complexType name="ModelGroupArray"> <xsd:sequence maxOccurs="3"> <xsd:element name="element1" type="xsd:string"/> <xsd:element name="element2" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:schema>
複数のエレメントを含んでいる maxOccurs <= 1 の <all/> タグ:
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://All"> <xsd:complexType name="All"> <xsd:all> <xsd:element name="element1" type="xsd:string"/> <xsd:element name="element2" type="xsd:string"/> </xsd:all> </xsd:complexType> </xsd:schema>
<any/> と sequence を一緒に使用することについての詳細は、このページの下部にリストしたトピックの中で説明します。このセクションで以下の残りの部分に示す一般情報は、その他の Sequence 条件の処理方法を説明したものですが、<any/> にも当てはまります。