我最近開始使用schematron來驗證xml文檔。到目前爲止,我對它印象非常深刻,但我偶然發現了一條我無法正常工作的規則。Schematron有條件驗證
我在下面做了一個簡單的例子。
<iso:assert test="ns1:some-element/text() = 'false' and /ns1:same-other-element">Error message</iso:assert>
基本上我想驗證兩件事情,如果ns1:some-element/text()
包含「假」,ns1:same-other-element
應該存在,並且驗證實際工作。然而,當ns1:some-element/text()
包含非假的東西時,我不在乎天氣ns1:same-other-element是否存在。同其它元素缺失和ns1:some-element/text()
值不是「假」
任何想法如何解決此問題:
此時,規則NS1時也會觸發?
謝謝,這似乎確實是正確的路要走。現在我的規則按照我希望的方式工作。 – ErikL
一個更簡單的等價條件就是:'ns1:some-element!='false'或/ ns1:same-other-element'。 – JLRishe