1
我想生成一個xSD文件,其中包含一些約束條件:如何在一些約束下爲xml生成一個XSD文件?
a)集羣元素中應該有多個作業元素。
二)在工作元件,
ⅰ)<name>
和<id>
元素是強制性的,只出現一個必需的。
ii)</parentjobid>
元素可以存在或不存在並且可以出現多於一個。
ⅲ)<description>
可以存在或不存在
ⅳ)元素可以是在工作元件的任何順序。
<?xml version="1.0" encoding="UTF-8" ?>
<Cluster name="abc" id="101" >
<job>
<name>ansys</name>
<id>1001</id>
<parentjobid>12</parentjobid>
<description>This is thermal analysis</description>
</job>
<job>
<name>cfx</name>
<id>1002</id>
<parentjobid>122</parentjobid>
<parentjobid>121</parentjobid>
</job>
</Cluster>
下面是我創建的XSD,但它不遵守上述規則。 請分享一下,請問這是否XSD可以寫更好的辦法
的xsd:
<xs:element name="job">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded" >
<xs:element ref="name" minOccurs="1" maxOccurs="1" />
<xs:element ref="jobid" minOccurs="1" maxOccurs="1"/>
<xs:element ref="description" minOccurs="1" maxOccurs="1"/>
<xs:element ref="parentjobid" maxOccurs="32" minOccurs="0" />
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string" />
<xs:element name="jobid" >
<xs:simpleType>
<xs:restriction base="xs:positiveInteger" >
<xs:minInclusive value="1"></xs:minInclusive>
<xs:maxInclusive value="65536"></xs:maxInclusive>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="parentjobid" >
<xs:simpleType>
<xs:restriction base="xs:positiveInteger" >
<xs:minInclusive value="1"></xs:minInclusive>
<xs:maxInclusive value="65536"></xs:maxInclusive>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="description" type="xs:string"/>
非常感謝Filburt的回覆。我現在得到了這個問題。我猜也是,我必須使用XML Schema1.1或任何其他解析器來完成此驗證。我的選擇元素有> 15元素,所以在這裏應用組合將是不好的選擇。 – user648330 2011-03-09 13:22:35