⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

XML 中的交叉引用验证:ID/IDREF 与 IDREFS 的高级模式

超越简单的 ID/IDREF 配对,学习如何在复杂文档中利用 IDREFS 实现多对多关系验证,以及跨多个文档的引用约束。 · 难度:入门 · +10XP

XML 中的交叉引用验证:ID/IDREF 与 IDREFS 的高级模式

ID 属性要求全局唯一,但 IDREF/IDREFS 只能检查存在性,无法保证引用语义的正确性(如类型匹配)。本教程首先展示基本的一对一关联,然后引入 IDREFS 属性实现列表引用(例如一个分类包含多个项目ID)。接着通过 DTD 约束模拟外键行为,并讨论多个文档间无法直接验证的局限,最后给出利用 Schematron 或自定义脚本增强交叉引用校验的思路。

<!DOCTYPE catalog [
  <!ELEMENT catalog (category*, item*)>
  <!ELEMENT category (name, items)>
  <!ATTLIST category id ID #REQUIRED>
  <!ELEMENT items (#PCDATA)> <!-- IDREFS -->
  <!ELEMENT item (title)>
  <!ATTLIST item id ID #REQUIRED>
]>
<catalog>
  <category id='c1'>
    <name>Tools</name>
    <items>it1 it2</items>
  </category>
  <item id='it1'><title>Hammer</title></item>
</catalog>
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 182 篇
0 完成
🔥 0