我需要在Schematron中指定一个规则,即每个元素<xpto>
必须具有属性x
和y
,而它最终拥有的所有其他属性必须是z
或w
。
因此,假设我有以下元素:
<xpto a="abc">
这是一个错误的元素,因为它不仅不具有属性x
和y
,而且还具有不属于有效属性(x,y,z,w)
的属性a
。
有效元素为:
<xpto x="abc" y="cba">
或
<xpto x="abc" y="cba" w="dsa">
我知道如何使用@attribute命令指定强制属性,但我不知道如何指定所有属性的名称必须在某个集合中,就像给出的示例中的('x','y','z','w')
一样。
发布于 2013-03-17 21:33:21
<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>
https://stackoverflow.com/questions/15463617
复制