我需要在Schematron中指定一个规则,其中我说每个元素<xpto>
必须具有属性x
和y
,并且它最终具有的所有其他属性必须是{{1} }或z
。
所以我想说我有以下要素:
w
这是一个错误的元素,因为它不仅具有属性<xpto a="abc">
和x
,它还具有属性y
,它不是有效属性之一{ {1}}。
有效的元素是:
a
或
(x,y,z,w)
我知道如何使用@attribute命令指定强制属性,我只是不知道如何指定所有属性的名称必须在某个集合中,例如给定示例中的<xpto x="abc" y="cba">
... < / p>
答案 0 :(得分:0)
<sch:pattern>
<sch:rule context="xpto">
<sch:assert test="every $attr in @* satisfies $attr/name()=('x','y','z','w')">Error message</sch:assert>
</sch:rule>
</sch:pattern>