DTD
定义
文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。
DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
XML 文档构建模块
- 元素
- 属性
- 实体
- PCDATA
- CDATA
PCDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记。
文本中的标签会被当作标记来处理,而实体会被展开。
不过,被解析的字符数据不应当包含任何 &、< 或者 > 字符;需要使用 &、< 以及 > 实体来分别替换它们。
CDATA 是不会被解析器解析的文本。在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开
元素
声明
- <!ELEMENT 元素名称 类别>
- <!ELEMENT 元素名称 (元素内容)>
空元素 <!ELEMENT 元素名称 EMPTY>
只有 PCDATA 的元素 <!ELEMENT 元素名称 (#PCDATA)>
带有任何内容的元素 <!ELEMENT 元素名称 ANY>
带有子元素(序列)的元素 <!ELEMENT 元素名称 (子元素名称 1)>
声明只出现一次的元素 <!ELEMENT 元素名称 (子元素名称)>
声明最少出现一次的元素 <!ELEMENT 元素名称 (子元素名称+)>
声明出现零次或多次的元素 <!ELEMENT 元素名称 (子元素名称?)>声明“非…/既…” 类型的内容
声明混合型的内容
属性
声明 <!ATTLIST 元素名称 属性名称 属性类型 默认值>
*类型* | *描述* |
---|---|
CDATA | 值为字符数据 (character data) |
(en1|en2|…) | 此值是枚举列表中的一个值 |
ID | 值为唯一的 id |
IDREF | 值为另外一个元素的 id |
IDREFS | 值为其他 id 的列表 |
NMTOKEN | 值为合法的 XML 名称 |
NMTOKENS | 值为合法的 XML 名称的列表 |
ENTITY | 值是一个实体 |
ENTITIES | 值是一个实体列表 |
NOTATION | 此值是符号的名称 |
xml: | 值是一个预定义的 XML 值 |
*值* | *解释* |
---|---|
值 | 属性的默认值 |
#REQUIRED | 属性值是必需的 |
#IMPLIED | 属性不是必需的 |
#FIXED value | 属性值是固定的 |
实体
内部声明 :<!ENTITY 实体名称 "实体的值">
外部声明 :<!ENTITY 实体名称 SYSTEM "URI/URL">
*注释:* 一个实体由三部分构成: 一个和号 (&), 一个实体名称, 以及一个分号 (😉。