我有這個XML文件(其中一些是巨大的 - 數千個元素),我試圖使用XSD模式驗證此XML文件的某些元素。例如。日期等。現在,問題是XSD不會讓我驗證文檔的某些部分。它想要一切的定義 - 這將是非常痛苦的。我想知道的是,有沒有辦法讓XSD只使用文檔的某些元素?我已經嘗試過任何和anyAttribute無濟於事。如果不是,你會如何做到這一點?是否有一個庫/腳本生成與XML文檔相對應的模式,然後根據我的需要進行修改?驗證XML文檔的一個子集或僅某些元素?
感謝,
我有這個XML文件(其中一些是巨大的 - 數千個元素),我試圖使用XSD模式驗證此XML文件的某些元素。例如。日期等。現在,問題是XSD不會讓我驗證文檔的某些部分。它想要一切的定義 - 這將是非常痛苦的。我想知道的是,有沒有辦法讓XSD只使用文檔的某些元素?我已經嘗試過任何和anyAttribute無濟於事。如果不是,你會如何做到這一點?是否有一個庫/腳本生成與XML文檔相對應的模式,然後根據我的需要進行修改?驗證XML文檔的一個子集或僅某些元素?
感謝,
你也有<xs:element name="aName"/>
它匹配的烏爾型,所以任何類型。
一個典型的部分驗證是:
<xs:schema>
<xs:element name="theRootElement">
<xs:complexType>
<xs:sequence>
<!- some wildcard wich match the beginning of the document until the desired element -->
<xs:any processContent="skip" namespace="somethingOrAll"/>
<xs:element name="theDesiredElementToMatch">
<!-- the matching test -->
</xs:element>
<!-- the rest of the doc -->
<xs:any processContent="skip" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
但它並不適用於所有的模式工作,這是非常乏味的。
複製你關心到文檔片段的DOM和運行驗證對那些碎片。當然,假設你正在用API編寫一些語言來完成這一切。
你是指XSD想要定義所有東西的含義?你怎麼知道的?你在說什麼「XSD」? 「XSD」對「想要定義」意味着什麼? – 2010-12-22 00:44:04
您可能想要顯示您用於驗證的代碼。如何完成這個任務可能取決於你使用的工具 - 通常它會。 – 2010-12-22 00:51:59