0
我正在尋找創建一個XSD文檔來爲我驗證一些XML。比方說,例如,XML文檔是用來描述書:關於使用XSD進行XML驗證的問題
<?xml version="1.0" encoding="UTF-8"?>
<book>
<comment>Bob's very first book</comment>
<name>Bob's book</name>
<author>Bob</author>
<year>2009</year>
<publisher>
<name>Dan's book publishing enterprise</name>
<address>123 Fake St.</address>
</publisher>
</book>
我們也可以說,我只真正關心的三大要素 - 名稱,作者和年份。它們是強制性的,應該根據模式進行驗證。我不控制我收到的XML文件,所以元素的順序應該不重要,並且任何其他元素都將被允許通過XSD驗證未經檢查。
遵循這些要求,我試圖構建一個能夠做這種驗證的XSD模式,但我無法把它做好。可以按任何順序定義元素的約束規則排除了sequence
指示符。剩下的是all
或choice
指標。 all
將是明顯的選擇,但它不允許我使用any
元素。
我也玩弄使用這種的想法:
<include schemaLocation="year.xsd"/>
<include schemaLocation="name.xsd"/>
<include schemaLocation="author.xsd"/>
....
<sequence>
<any processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
而如果XML文件中找到,名稱一年,筆者將被驗證,這不檢查強制性內容 - 我不能指定的年,作者和該書的名稱都需要通過驗證。
任何人都可以給我提示如何構建一個XSD文檔,它將驗證一些無序的強制性元素,並仍然允許XML文件中的未定義元素通過驗證?
謝謝!
看起來你是對的...... – Sevas 2010-04-15 14:20:52