XSD Keyref 字段只能使用“.”,而不是元素名称?

XSD Keyref field only works with ".", instead of element name?

为什么以下架构不同?我只是想做一个简单的 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>

它们的不同之处在于,一个引用名为 "follows" 的元素,另一个引用名为 "follows".

的属性

如果第二个写成 <xsd:field xpath="follows"/>,它与第一个的不同之处在于它仅在 user 元素具有单个 follows 元素时才有效 child,而第一个允许 user 有多个 follows children,每个都充当 keyref。