《单元二 使用 DTD 定义 XML 文档》教学案例
——2.11 DTD 中属性取值类型设置(中)
理解 ID 类型、IDREF 类型以及 IDREFS 类型的属性取值
理解并会灵活运用 ID 类型、IDREF 类型以及 IDREFS 类型的属性取值
知识介绍
ID 类型属性取值:ID 类型的属性唯一标识 XML 文档中的元素,特定元素的 ID 属性值在整个文档中
必须是唯一的。它可以作为元素的唯一标识符。一个 ID 类型属性值必须为有效的 XML 名称,必须遵守
XML 名称定义的规则,该名称以字母开头,由字母数字混排的字符或下划线组成,并且其中不带空格。
一个特定的名称不能用作多个标记的 ID 属性。若在一个文档中两次使用同一 ID 将导致语法分析器返回一
个错误信息,另外,每个元素至多有一个 ID 类型的属性,而且它们 ID 类型的属性必须设置为# IMPLIED
或# REQUIRED,不能是# FIXED 或缺省的。为 ID 提供缺省值,特别是固定的缺省值是毫无意义的,这会
破坏 ID 的唯一性。
IDREF 类型属性取值:IDREF 类型的属性值为文档中另一个元素的 ID 属性值,可以利用它在两个对
象之间建立一对一的关系。IDREF 类型可以用于在文档中创建链接和交叉引用,IDREF 属性的值必须受到
与 ID 类型同样的约束,它们必须与文档中的某个 ID 属性具有相同的值。IDREF 值不能指向文档中不存在
的 ID。例如,一个学生可以借阅多本图书,学生借阅图书的属性 BID 可定义为 IDREF 类型,关联图书的
编号 BookID。
IDREFS 类型属性取值:有时,希望将一个元素与其他多个元素相关联。这就要依靠 IDREFS 类型。
它能够建立一对多的关系。这类属性的值是一系列以空格分隔的 ID 值,其中每个 ID 必须满足对 ID 类型
的约束,当然它们必须与文档中的 ID 属性值相匹配。IDREFS 的本意是允许属性有多个属性值,它们之间
用空格分隔,但必须是处于同一对引号之下的字串。在 IDREFS 类型中,空格是合法的。
案例 1:ID 类型属性值设置
【代码实现】:
01 <?xml version = "1.0" encoding="UTF-8" standalone="yes"?>
02 <!DOCTYPE BookList [
03 <!ELEMENT Title (#PCDATA)>
04 <!ELEMENT Author (#PCDATA)>
05 <!ELEMENT Publisher (#PCDATA)>
评论0
最新资源