スキーマを定義するときに使用したすべての例では<xs:choice>
、要素は常に単純な要素であり、外部の型を参照する場合がありますが、独自のサブ要素を持つことはありません。これはルールですか、それとも慣習ですか?たとえば、これを行うことは可能ですか?
<xs:element name="shape">
<xs:complexType>
<xs:choice>
<xs:element name="circle">
<xs:complexType>
<xs:sequence>
<xs:element name="radius" type="xs:decimal" />
<xs:element name="x" type="xs:integer" />
<xs:element name="y" type="xs:integer" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="rectangle">
<xs:complexType>
<xs:sequence>
<xs:element name="length" type="xs:integer" />
<xs:element name="width" type="xs:integer" />
<xs:element name="x" type="xs:integer" />
<xs:element name="y" type="xs:integer" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
これは、書くこととほぼ同じです
data Shape = Circle Double Int Int
| Rectangle Int Int Int Int
ハスケルで。