【问题标题】:Define keyref selector based on element type in XPath根据 XPath 中的元素类型定义 keyref 选择器
【发布时间】:2010-03-14 01:36:29
【问题描述】:

假设我有一个如下所示的 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 中,也是不知道模式的?

【问题讨论】:

    标签: xpath xsd keyref


    【解决方案1】:

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

    【讨论】:

    • 酷,你帮了我的忙。现在我必须找出如何在 Altova XML spy 中测试它,然后在 .Net 中尝试 XPath 2.0(如果可能的话)
    猜你喜欢
    • 2018-05-21
    • 2012-03-18
    • 2013-08-23
    • 2017-02-24
    • 2010-09-18
    • 2011-05-07
    • 2015-04-03
    • 2022-10-14
    • 2012-03-29
    相关资源
    最近更新 更多