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