Xsd-complex-indicators
提供:Dev Guides
XSD-複雑なインジケーター
インジケータは、XMLドキュメントで要素を整理する方法を制御します。 インジケータには7つのタイプがあり、3つの広いカテゴリに分類されます。
注文インジケータ
- すべて-子要素は任意の順序で出現できます。
- 選択-子要素の1つだけが発生します。
- シーケンス-子要素は指定された順序でのみ発生します。
発生インジケータ
- maxOccurs -子要素はmaxOccurs回だけ発生します。
- minOccurs -子要素はminOccurs回出現する必要があります。
グループ指標
- グループ-関連する要素セットを定義します。
- attributeGroup -関連する属性セットを定義します。
注文インジケータ
<all>を使用すると、学生要素は、XMLドキュメント内で、firstname、lastname、nicknameを持ち、子要素を任意の順序でマークできます。
<xs:complexType name = "StudentType" mixed = "true">
<xs:all>
<xs:element name = "firstname" type = "xs:string"/>
<xs:element name = "lastname" type = "xs:string"/>
<xs:element name = "nickname" type = "xs:string"/>
<xs:element name = "marks" type = "xs:positiveInteger"/>
</xs:all>
<xs:attribute name = 'rollno' type = 'xs:positiveInteger'/>
</xs:complexType>
<xs:element name = 'student' type = 'StudentType'/>
<choice>を使用すると、学生要素は、XMLドキュメントのfirstname、lastname、nickname、marksのいずれかの子要素のみを持つことができます。
<xs:complexType name = "StudentType" mixed = "true">
<xs:choice>
<xs:element name = "firstname" type = "xs:string"/>
<xs:element name = "lastname" type = "xs:string"/>
<xs:element name = "nickname" type = "xs:string"/>
<xs:element name = "marks" type = "xs:positiveInteger"/>
</xs:choice>
<xs:attribute name = 'rollno' type = 'xs:positiveInteger'/>
</xs:complexType>
<xs:element name = 'student' type = 'StudentType'/>
<sequence>を使用すると、学生要素は名、姓、ニックネームを持ち、XMLドキュメント内でのみ指定された順序で子要素をマークできます。
<xs:complexType name = "StudentType" mixed = "true">
<xs:sequence>
<xs:element name = "firstname" type = "xs:string"/>
<xs:element name = "lastname" type = "xs:string"/>
<xs:element name = "nickname" type = "xs:string"/>
<xs:element name = "marks" type = "xs:positiveInteger"/>
</xs:sequence>
<xs:attribute name = 'rollno' type = 'xs:positiveInteger'/>
</xs:complexType>
<xs:element name = 'student' type = 'StudentType'/>
発生インジケータ
<maxOccurs>を使用すると、学生要素はXMLドキュメントで最大2つのニックネームを持つことができます。
<xs:complexType name = "StudentType" mixed = "true">
<xs:all>
<xs:element name = "firstname" type = "xs:string"/>
<xs:element name = "lastname" type = "xs:string"/>
<xs:element name = "nickname" type = "xs:string" maxOccurs="2"/>
<xs:element name = "marks" type = "xs:positiveInteger"/>
</xs:all>
<xs:attribute name = 'rollno' type = 'xs:positiveInteger'/>
</xs:complexType>
<xs:element name = 'student' type = 'StudentType'/>
<minOccurs>を使用して、学生要素はXMLドキュメントに2つのニックネームを持つ必要があります。
<xs:complexType name = "StudentType" mixed = "true">
<xs:all>
<xs:element name = "firstname" type = "xs:string"/>
<xs:element name = "lastname" type = "xs:string"/>
<xs:element name = "nickname" type = "xs:string" minOccurs="2"/>
<xs:element name = "marks" type = "xs:positiveInteger"/>
</xs:all>
<xs:attribute name = 'rollno' type = 'xs:positiveInteger'/>
</xs:complexType>
<xs:element name = 'student' type = 'StudentType'/>
グループ指標
<group>は、関連する要素セットをグループ化するために使用されます。 ここでは、名前の一部のグループを作成し、このグループを使用して student 要素を定義しました。
<xs:group name = "infogroup">
<xs:sequence>
<xs:element name = "firstname" type = "xs:string"/>
<xs:element name = "lastname" type = "xs:string"/>
<xs:element name = "birthdate" type = "xs:date"/>
</xs:sequence>
</xs:group>
<xs:element name = "student" type = "studentType"/>
<xs:complexType name = "studentType">
<xs:sequence>
<xs:group ref = "infogroup"/>
<xs:element name = "marks" type = "xs:integer"/>
</xs:sequence>
</xs:complexType>
<attributeGroup>は、関連する属性セットをグループ化するために使用されます。 ここでは、名前の一部のグループを作成し、このグループを使用して student 要素の属性を定義しました。
<xs:attributeGroup name = "infogroup">
<xs:sequence>
<xs:attribute name = "firstname" type = "xs:string"/>
<xs:attribute name = "lastname" type = "xs:string"/>
<xs:attribute name = "birthdate" type = "xs:date"/>
</xs:sequence>
</xs:attributeGroup>
<xs:element name = "student" type = "studentType"/>
<xs:complexType name = "studentType">
<xs:sequence>
<xs:attributeGroup ref = "infogroup"/>
<xs:element name = "marks" type = "xs:integer"/>
</xs:sequence>
</xs:complexType>