[英]XML schema two-level key/keyref constraints
给定以下xml:
<root>
<families>
<family familyname="Flintstone">
<member name="Fred"/>
<member name="Wilma"/>
</family>
<family familyname="Rubble">
<member name="Barney"/>
<member name="Betty"/>
<member name="Bamm-Bamm"/>
</family>
</families>
<employees>
<employee name="Fred" familyname="Flintstone"/>
<employees>
</root>
是否可以在xsd中构建密钥/密钥引用约束以验证雇员的有效性?
以下内容不适用于密钥(keyref向前转发):
<xs:key name="Individuals">
<xs:selector xpath="./families/family/member"/>
<xs:field xpath="@name"/>
<xs:field xpath="../@familyname"/>
</xs:key>
有没有有效的替代方法?
不,如上所述是不可能的。 我假设“有效的替代方案”可以实现您的意图,即使它涉及对XML的更改。
在这种情况下,只需将新的必需属性添加到成员元素(以@key为例)。 这意味着您应该删除员工的姓名和姓氏,然后添加密钥。
它会更像一个“数据库” ...好处:
我意识到您的插图是真实世界场景的模型,因此我的最后收益可能与您的实际情况无关。 尽管如此,这仍是一种适用的思维方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.