0

使用 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>

我如何断言元素查找具有在表元素中使用的名称?

断言需要在根元素上,因为不可能断言元素树,但是我如何断言每个查找元素,而不管它在文档结构中的什么位置?

4

1 回答 1

1

请记住,在XPath 2.0中,$s1 = $sequence2当且仅当$s1(或其任何元素,如果它是一个序列)存在于$sequence2. 因此,您可以将这个简单的XPath测试用于您的断言:

every $lookupName in descendant-or-self::lookup/@name satisfies $lookupName = descendant-or-self::table/@name
于 2015-06-03T22:16:50.530 回答