我得到了以下的模式:XML架構的maxOccurs和xs:所有
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="machine">
<xs:complexType>
<xs:sequence>
<xs:element name="states" type="tokenList"/>
<xs:element name="in_alphabet" type="tokenList"/>
<xs:element name="blank" type="xs:string"/>
<xs:element name="tape_alphabet" type="tokenList"/>
<xs:element name="first_state" type="xs:string"/>
<xs:element name="final_states" type="tokenList"/>
<xs:element name="delta" type="delta_func" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="tokenList">
<xs:list itemType="xs:normalizedString"/>
</xs:simpleType>
<xs:complexType name="delta_func">
<xs:sequence>
<xs:element name="state" type="xs:string"/>
<xs:element name="read" type="xs:string"/>
<xs:element name="target_states" type="tokenList"/>
<xs:element name="write" type="xs:string"/>
<xs:element name="move">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="R|L|r|l"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
其中一期工程,但我想不限制元素的順序。我試過xs:all
,但它不允許maxOccurs=unbounded
爲delta
,這是必須的。所有其他元素只出現一次,所以xs:all
這裏不會有問題。有沒有辦法在元素上定義隨機順序,同時允許無限數量的delta
s?