我有以下两个 XML 文档:
<struct>
<type>a</type>
<p1 xsi:nil="true"/>
<p2 xsi:nil="true"/>
</struct>
<struct>
<type>b</type>
<p1 xsi:nil="true"/>
<p2 xsi:nil="true"/>
</struct>
我希望构建一个模式来验证如果元素类型的值为“a”,那么它是子元素(又名p1
& p2
) 应该为零或为空。
而当元素类型是其他类型时,例如“b”,则p1
or p2
元素可以包含任何内容,也可以不包含任何内容。
这是“共现约束”的典型示例(一个元素的类型取决于另一个元素的值)。这无法使用 XSD 1.0 完成,但可以使用 XSD 1.1 通过断言来完成
<xs:assert test="if (type eq 'a') then nilled(p1) else true()"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)