Schematron中的强制和可选属性

时间:2013-03-17 17:09:23

标签: xml xpath schematron

我需要在Schematron中指定一个规则,其中我说每个元素<xpto>必须具有属性xy,并且它最终具有的所有其他属性必须是{{1} }或z

所以我想说我有以下要素:

w

这是一个错误的元素,因为它不仅具有属性<xpto a="abc"> x,它还具有属性y,它不是有效属性之一{ {1}}。

有效的元素是:

a

(x,y,z,w)

我知道如何使用@attribute命令指定强制属性,我只是不知道如何指定所有属性的名称必须在某个集合中,例如给定示例中的<xpto x="abc" y="cba"> ... < / p>

1 个答案:

答案 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>