2011-03-26 180 views
1

這是我想解決的場景/問題 - 在我的XSD中的一系列元素中,我有一個元素 - 比如說XYZ,如果上述其中之一元素 - 說ABC - 有一定的價值 - 說「阿爾法」。如果前面的元素 - ABC具有不同的值,那麼元素XYZ必須不能爲空。XML架構驗證 - 現場驗證

解決此問題的最佳方法是什麼?

我使用C#& SQL服務器。

是否可以在XSD中定義新的屬性?

回答

4

確實應該修正XSD以控制元素和屬性的結構和格式。您試圖執行的是實施業務規則,這些規則無法使用XSD進行驗證。

但是,可用於XML實現業務規則的框架,它被稱爲Schematron的ISO標準。 Schematron基本上使用XPath的組合來實現邏輯和XSLT來執行驗證。

有這個知道的Schematron.NET一個.NET項目。

這可能是有趣的閱讀 'Improving XML Document Validation with Schematron'。