xml(2)

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 名称 内容>
引用格式:&实体名称;

原文地址:https://www.cnblogs.com/code-fun/p/11832263.html