【发布时间】:2015-06-03 19:23:32
【问题描述】:
使用 XSD 1.1 是否可以断言某个属性存在于其他地方。
示例:
<root>
<someelement>
<lookup name="test"/>
<bla>
<lookup name="tbl2"/>
<morebla>
<evenmore>
<lookup name="tbl2"/>
</evenmore>
</morebla>
</bla>
</someelement>
<table name="test">
...
</table>
<table name="tbl2">
...
</table>
</root>
我如何断言元素查找具有在表格元素中使用的名称?
断言需要在根元素上,因为不可能断言元素树,但是我如何断言每个查找元素,无论它在文档结构中的什么位置?
【问题讨论】:
-
//x 选择所有名为 x 的节点,如您在简单教程的this page 中所见。
-
是的 //operator 是我自己尝试的。我的想法是每一个 $i 在 1 中计数(//lookup) 满足存在(//table/@name = lookup[$i]/@name) 但是这不起作用,所以我不确定 / /lookup 部分错误或我满意的部分。
-
对不起。我已经阅读了您的问题,并且我以为您不知道该基本运算符。你的方法没问题,看看我的答案,它也使用
every $v1 in $v2 satisfies语法。