0

假设我有一个如下所示的 XML 文件:

<a>
    <b d="value1"/>
    <c d="value2"/>
</a>

在定义此 XML 文件结构的 XSD 文件中,我将名称为“b”和“c”的元素定义为相同类型(并且该类型需要属性“d”)。

假设我想对'b'和'c'都是类型的所有元素进行keyReference,XPath中有什么方法可以做到这一点吗?

在“a”类型的定义中,我希望是这样的:

<xs:keyref name="myReferenceName" refer="keyToReferTo">
    <xs:selector xpath="[@type='typenameof elements b and c?']"/>
    <xs:field xpath="@d"/>
</xs:keyref>

这样的事情是否可能,或者 XPath,即使在 XSD 中,也是不知道模式的?

4

1 回答 1

1

XPath 1.0 肯定不知道任何模式,1.0 版中的 W3C XML 模式规范甚至只使用了 XPath 1.0 的一个子集。我认为定义使用 XPath 2.0 的新版本的 W3C XML 模式语言的工作正在进行,但我不知道它的细节以及它是否允许基于模式类型在选择器中选择元素。element(*, NameOfTypeGoesHere)我认为XPath 是,请参阅http://www.w3.org/TR/xpath20/#id-element-test

于 2010-03-13T17:36:29.363 回答