1
在定義模式時我看到所有使用<xs:choice>
的示例中,元素始終是簡單元素,它們可能會引用某些外部類型,但從不具有它們自己的子元素。這是一個規則還是一個慣例?例如,是否有可能做到這一點?XML架構:在選擇元素中使用複雜類型?
<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>
這將是在Haskell寫
data Shape = Circle Double Int Int
| Rectangle Int Int Int Int
大致相當。