我的xml数据的某个元素应该与以下条件中的EXACT ONE匹配:
1。)它有一个@when属性,没有别的。
2。)它有一个@ when-iso属性,没有别的。
3.)它既有@ notBefore-iso又有@ notAfter-iso属性,但既不是@when也不是@ when-iso属性。
我尝试使用schematron进行测试,但是我无法创建匹配的xpath表达式。
我试过
<assert test="@when or @when-iso or (not(@when) and not(@when-iso) and @notBefore-iso and @notAfter-iso)">
但这不起作用。显然,括号中的内容被忽略了。那么,我如何构建复杂/嵌套的条件表达式?
答案 0 :(得分:4)
适用于您的案例的示例:
<assert test="(@when and count(@*)=1) or (@when-iso and count(@*)=1) or (@notBefore-iso and @notAfter-iso and count(@*)=2)"/>