9
我在C#應用程序中有一個方法,該方法根據嵌入式XSD驗證用戶輸入XML文件。它工作得很好,但它要求所有的子元素都按XSD中定義的順序排列。對我來說,只要元素存在,順序並不重要。根據XSD驗證XML並忽略子元素的順序
舉例來說,如果我有以下XSD ...
<xs:element maxOccurs="unbounded" name="ParentElement">
<xs:complexType>
<xs:sequence>
<xs:element name="FirstChildElement" type="xs:string" />
<xs:element name="SecondChildElement" type="xs:string" />
<xs:element name="ThirdChildElement" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
而且像這樣的XML ...
<ParentElement>
<FirstChildElement>someValue</FirstChildElement>
<ThirdChildElement>someValue</ThirdChildElement>
<SecondChildElement>someValue</SecondChildElement>
</ParentElement>
如果我驗證它,我會得到,因爲一個錯誤子元素失靈。
是否可以對XSD進行一些更改,以便驗證只關心元素是否存在,以及它們是否在正確的父級下,但不是它們的順序?
謝謝,這就是答案。我的XSD是由VS爲我生成的,所以它擁有Sequence標籤下的所有子元素。 – Jim 2012-07-23 21:42:37
要記住的一點是,xs:全部只支持maxOccurs爲1且不超過1。但是,XSD 1.1處理器仍然處於測試階段,但這已經取消。 – vanval 2014-06-12 19:45:43
他們有沒有發佈1.1? – ppumkin 2014-10-09 14:25:33