【发布时间】:2021-08-23 19:54:39
【问题描述】:
仅当 EFFECT 元素位于两个 SUBTASK 元素之间时,才拼命让 Schematron 发出警报——它们是彼此的兄弟。非常感谢任何帮助,如果需要更多信息,请告诉我。
下面是一些简单的示例代码:
<TOPIC>
<SUBTASK></SUBTASK>
<EFFECT></EFFECT>
<SUBTASK></SUBTASK>
</TOPIC>
这是我的两次 Schematron 尝试 - 问题在于它会在文档中的每个 EFFECT 上发出警报,而不仅仅是在两个 SUBTASK 之间。 *注意 - EFFECT 是一个通配符,允许在任何地方使用。
<rule context="EFFECT">
<assert test="preceding-sibling::*[position()[1]][SUBTASK] = following-sibling::*[position()[1]][SUBTASK]" role="error" id="error_EFFECT_between_SUBTASK"
>EFFECT not allowed between two SUBTASKs</assert>
</rule>
<rule context="EFFECT">
<assert test="count(preceding-sibling::*[position()>0]) and preceding-sibling::*[position()[1]][SUBTASK] = following-sibling::*[position()[1]][SUBTASK]" role="error" id="error_EFFECT_between_SUBTASKs"
>EFFECT not allowed between two SUBTASK</assert>
</rule>
【问题讨论】:
标签: schematron