其實,你的XSD充滿了各種各樣的問題。嘗試使用一個體面的XSD/XML編輯器,它應該比你想象的更多地幫助你。
問題:
- 基數屬性(最小值/最大值時發生)並不適用於全局元素聲明。
- 如果你引用一個類型,你應該在某個地方有一個簡單或複雜類型的定義。
我會用一個示例XML開始,因爲你已經知道了:
<Cluster>
<Node>node1</Node>
<Node>node2</Node>
</Cluster>
然後你可以使用體面的工具生成的XSD,一個主題,它比簡單的XML更復雜,你只是可視化:
<?xml version="1.0" encoding="utf-8"?>
<!--W3C Schema generated by QTAssistant/W3C Schema Refactoring Module (http://www.paschidev.com)-->
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Cluster">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="Node" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
在那裏你可以看到maxOccurs,然後將其更改爲你想要的值。隨着您對XSD語法更加熟悉,您可以開始將工作的XSD編輯爲更有意義的內容;最後,XSD推斷可能並不總是令人滿意...
這就夠了!添加一個maxoccurs =無界。你可以在這裏找到一些有關XSD和列表的最佳實踐:http://www.xfront.com/ElementHierarchy.html – 2012-04-04 13:26:54