【发布时间】:2019-01-11 23:58:52
【问题描述】:
我需要检查一组记录以确保节点存在,但前提是记录不属于特定类型。例如:
<record>
<type>Audio</type>
</record>
<record>
<type>Video</type>
</record>
<record>
<type>Text</type>
<preview>https://website.com/preview.jpg</preview>
</record>
我想说,如果记录没有<preview> 字段,则它是无效的,除非它是音频或视频文件,在这种情况下,没有<preview> 字段是可以的。
但是这样的事情是行不通的:
<pattern>
<rule context="record/type !='Audio' and record/type !='Video'">
<assert test="record/preview">Needs preview image</assert>
</rule>
</pattern>
有什么方法可以使一个节点的测试以不同节点的值为条件?
【问题讨论】:
-
用
<rule context="record[not(type = ('Audio', 'Video'))]"><assert test="preview">...</assert></rule>不够吗?
标签: xml xslt-2.0 schematron