XML Schema 中的 key 和 keyref 用于实现文档内主键—外键约束:key 确保指定字段值全局唯一且非空,keyref 要求字段值必须匹配某 key 或 unique 声明的键值,二者均在 XSD 验证阶段由解析器检查。

XML Schema 中的 key 和 keyref 用于在 XML 文档内部实现类似数据库中“主键—外键”的约束机制,确保元素/属性值的唯一性与引用有效性。它们不依赖外部数据库,而是在 XML 解析(如 XSD 验证)阶段由处理器检查。
key:定义唯一标识符(相当于主键)
key 声明一个字段(或字段组合)在整个文档范围内必须唯一,且非空。它必须出现在 <element></element> 或 <complextype></complextype> 的 <key></key> 子元素中,作用域是该元素及其后代。
关键点:
- 用
<selector></selector>指定要约束的元素集合(XPath 表达式,相对路径) - 用
<field></field>指定作为“键值”的子项(可多个,对应联合主键) - 每个
<field></field>的 XPath 必须返回**单个原子值**(不能是元素节点集)
示例:要求每个 <book></book> 的 isbn 属性全局唯一
keyref:定义引用关系(相当于外键)
keyref 声明某个字段的取值必须匹配某个 key(或 unique)声明的键值,从而建立引用完整性。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~