DTD用来验证xml的形式
引入格式:<!DOCTYPE 根元素的名字 SYSTEM "路径">//其中system代表本地路径
<?xml version="1.0"?> <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from EMPTY> <!ELEMENT heading ANY> <!ELEMENT body (#PCDATA)> ]> <note> <to>Tove</to> <from></from> <heading>Reminder</heading> <body>Don't forget me this weekend</body> </note>
以上 DTD 解释如下:
!DOCTYPE note (第二行)定义此文档是 note 类型的文档。
!ELEMENT note (第三行)定义 note 元素有四个元素:"to、from、heading,、body"
!ELEMENT to (第四行)定义 to 元素为 "#PCDATA" 类型
!ELEMENT from (第五行)定义 from 元素为 "EMPTY" 类型
!ELEMENT heading (第六行)定义 heading 元素为 任何类型
!ELEMENT body (第七行)定义 body 元素为 "#PCDATA" 类型
多种类型
+ | 表示出现一次或多次 |
? |
表示出现0次或者1次 |
* | 表示出现0次或多次 |
混合型(child1name|child2name)
表示或
使用dtd定义属性
语法:<!ATTLIST 元素名称
属性名称 属性类型 属性的约束
>
属性类型:
CDATA | 值为字符数据 (character data) |
(en1|en2|..) | 此值是枚举列表中的一个值(只出现一次) |
ID | 值为唯一的 id(只能以字母或者下划线开头) |
属性的约束:
#REQUIRED | 属性值是必需的 |
#IMPLIED | 属性不是必需的 |
#FIXED value | 属性值是固定的 |
实体:定义一个字符串
语法:<!ENTITY 名称 内容>
引用格式:&实体名称;