【问题标题】:XSD Keyref field only works with ".", instead of element name?XSD Keyref 字段仅适用于“。”,而不是元素名称?
【发布时间】:2016-03-28 18:10:18
【问题描述】:

为什么以下架构不同?我只是想制作一个简单的 keyref,如有必要,我可以提供更多上下文...

<!-- This works -->
<xsd:keyref name="followsKey" refer="userKey">
    <xsd:selector xpath="user/follows" />
    <xsd:field xpath="." />
</xsd:keyref>

<!-- This doesn't -->
<xsd:keyref name="followsKey" refer="userKey">
    <xsd:selector xpath="user" />
    <xsd:field xpath="@follows" />
</xsd:keyref>

【问题讨论】:

    标签: xml xpath xsd


    【解决方案1】:

    它们的不同之处在于,一个指向一个名为“follows”的元素,另一个指向一个名为“follows”的属性。

    如果第二个写成&lt;xsd:field xpath="follows"/&gt;,它将与第一个不同之处在于它仅在user 元素具有单个follows 元素子元素时才有效,而第一个允许user 具有多个follows 孩子,每个孩子都充当一个keyref。

    【讨论】:

    • 我也尝试使用不带 at 符号的 follows,但唉,有多个 follows 孩子。谢谢你的解释!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 2014-04-16
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多