DTD
XML 构建模块
所有的 XML 文档(以及 HTML 文档)均由以下简单的构建模块构成:
- 元素
- 属性
- 实体
- PCDATA
- CDATA
语法
声明元素
语法
<!ELEMENT 元素名称 元素内容>
示例
声明属性
语法
<!ATTLIST 元素名称 属性名称 属性类型 默认值>
示例
属性类型的选项
默认值参数的选项
数量词
用于描述元素出现次数
示例
引用方式
内部的DOCTYPE声明
语法
<!DOCTYPE 根元素 [元素声明]>
示例
<?xml version="1.0" encoding="UTF-8"?>
<!-- 内部的DOCTYPE声明
【语法】
<!DOCTYPE 根元素 [元素声明]>
【示例】
book:根节点
ELEMENT 定义元素
-->
<!DOCTYPE book[
<!ELEMENT book (id,name,author)>
<!ELEMENT id (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
]>
<book>
<id>2</id>
<name>《这是书名》</name>
<author>张三</author>
</book>
外部文档声明
语法
<!DOCTYPE 根元素 [元素声明]>
示例
- resources/book.dtd
<!ELEMENT book (id,name,author)>
<!ELEMENT id (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
- resources/demo.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book SYSTEM "book.dtd">
<book>
<id>1</id>
<name>《这是书名》</name>
<author>张三</author>
</book>
简要运用
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books[
<!ELEMENT books (book)+>
<!ELEMENT book (id,name,author)>
<!ELEMENT id (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ATTLIST author type (man|woman) "man">
<!ATTLIST author age CDATA #REQUIRED>
]>
<books>
<!-- book至少出现一次 -->
<book>
<!-- id -->
<id>1</id>
<!-- 书名 -->
<name>《JAVA从入门到放弃》</name>
<!-- 作者
属性type:可选(man|woman)默认值 “man”
属性age:必填属性
-->
<author type="man" age="23">张三</author>
</book>
<book>
<id>2</id>
<name>《这是一本书》</name>
<author type="man" age="32">李四</author>
</book>
</books>
r type="man" age="23">张三</author>
</book>
<book>
<id>2</id>
<name>《这是一本书》</name>
<author type="man" age="32">李四</author>
</book>
</books>