XML中ID和IDREF是解析器强制校验的特殊属性类型,需在DTD或Schema中声明;ID值须唯一且符合命名规则,IDREF必须精确匹配已声明ID,用于构建可验证的内部结构化链接。

在XML中,ID 和 IDREF 是两种内置的属性类型,用于定义唯一标识符和对这些标识符的引用,从而实现文档内部的结构化链接。它们不是普通字符串,而是由XML解析器强制校验的特殊类型,确保ID唯一、IDREF必须指向一个真实存在的ID。
需在DTD(文档类型定义)或XML Schema中明确定义属性类型,不能仅靠命名约定。
id 属性为ID类型;]]> 声明 authorID 为IDREF类型,可引用任意已声明的ID值。以下是一个带DTD的完整小例子:
<!DOCTYPE library [ <!ELEMENT library (person*, book*)> <!ELEMENT person (name)> <!ATTLIST person id ID #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT book (title)> <!ATTLIST book authorID IDREF #REQUIRED> <!ELEMENT title (#PCDATA)> ]> <library> <person id="p1"><name>张三</name></person> <person id="p2"><name>李四</name></person> <book authorID="p1"><title>XML入门</title></book> <book authorID="p2"><title>数据建模</title></book> </library>
这里 book 元素通过 authorID 链接到 person 的 id,XML解析器(如支持DTD验证的解析器)会在加载时检查:p1、p2是否唯一;authorID的值是否恰好等于某个person的id。
ID/IDREF是XML 1.0规范的一部分,依赖于外部或内嵌DTD才能生效;XML Schema中对应的是 xsd:ID 和 xsd:IDREF,用法类似但语法不同。
data-id)配合程序逻辑处理,因为ID/IDREF要求DTD绑定,灵活性较低。基本上就这些。用好ID和IDREF,能让XML文档具备清晰的内在引用关系,适合需要强结构约束和验证的场景,比如配置文件、元数据描述或交换标准。不复杂但容易忽略DTD声明这一步。
以上就是如何在XML中使用ID和IDREF类型的属性来创建内部链接?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号