我正在編寫xsd和要驗證的代碼,所以我在這裏有很好的控制權。要根據多個xsd模式進行驗證的XML
我想有一個上傳工具,可以根據xml文件向我的應用程序添加東西。 xml文件的一部分應根據其他部分中的其中一個值針對不同模式進行驗證。下面是一個例子來說明:
<foo>
<name>Harold</name>
<bar>Alpha</bar>
<baz>Mercury</baz>
<!-- ... more general info that applies to all foos ... -->
<bar-config>
<!-- the content here is specific to the bar named "Alpha" -->
</bar-config>
<baz-config>
<!-- the content here is specific to the baz named "Mercury" -->
</baz>
</foo>
在這種情況下,存在的<bar>
內容控制的一些詞彙,我能處理的部分就好了。然後,根據bar值,應該使用適當的xml模式來驗證bar-config的內容。同樣適用於baz和baz-config。
執行解析/驗證的代碼是用Java編寫的。不確定解決方案將如何依賴於語言。
理想情況下,該解決方案將允許xml作者聲明合適的模式位置以及什麼不是,以便他/她可以在充分智能的編輯器中實時驗證xml。
此外,<bar>
和<baz>
的可能值是正交的,所以我不想通過擴展來爲每個可能的酒吧/巴茲組合進行此操作。我的意思是,如果有24個可能的bar值/模式和8個可能的baz值/模式,我希望能夠編寫1 + 24 + 8 = 33個總模式,而不是1 * 24 * 8 = 192個總模式。
此外,如果可能的話,我寧願不把bar-config和baz-config分成單獨的xml文件。我意識到可能會讓所有問題變得更容易,因爲每個xml文件都只有一個模式,但我試圖查看是否有一個很好的單一xml文件解決方案。
忘記提到這也好啊,如果你的模式有不同的類型(XSD,RNG和DTD) – ksclarke 2010-04-12 20:29:34