2010-10-29 43 views
-1

現有的後端服務,將爲更多的客戶(添加Web服務層到網絡前端客戶端)打開。
目前,XML模式用於DTO的驗證,但由於前端是我們無法控制的,我們必須從前端層擴展測試(例如,相互依賴性測試)移動到一個新的「驗證層」。
現在我們的問題是,如果存在一個共同的模式,例如。類似於使用RELAX NG或規則引擎?需求是能夠檢查數據類型(我們將繼續使用XML Schema)和相互依賴性,但是這些相互依賴性可能會變得相當複雜,即。它們可能涉及檢查輸入數據中不可用的數據(但在某些外部系統中)。
因此,我們正在尋找一個模式,以及一個框架,可以很容易地實現了模式。與相互依賴性驗證層檢查

回答

0

Schematron是查看的模式語言(可能用作XSD頂層)。

Schematron基於使用XPath表達的約束,XPath在大多數情況下足以表達所需內容。由於XPath可以用用戶定義的函數進行擴展,因此可以通過例如XML來進行潛在的驗證。比較來自外部數據庫等的數據。

(如果您爲了驗證的目的而在文檔外部繪製數據,一個很好的方法是將該外部數據公開爲XML - 可能以RESTy方式提供 - 因此可以表示驗證約束完全用Schematron模式中的XML術語表示。)