xml学习3

DTD(Document Type Definition)文档类型定义 和 文档类型声明是不一样的 。文档类型声明是在xml文件中引入DTD 。

当我们在使用外部DTD的时候 <?xml version="1.0" encoding="gb2312" standalone="no"?> standalone一定要设置为no

文档类型声明可以包含或者引用一个 文档类型定义 ,也就是 我们所说的内部DTD和外部DTD

格式良好的 xml文件需要遵循xml语法规范 。而有效的xml文件就需要遵循 DTD 文档类型定义 。

这个DTD文件规定了 xml中各个节点之间的关系 。

我们可以使用<!DOCTYPE greeting[<!ELEMENT greeting(#PCDATA)>]> 引入内部DTD,这样做不需要验证,但是也有缺点 ,就是多个xml需要引用同一个DTD的时候就需要书写多份DTD。为了解决这个问题 我们可以吧DTD放在后缀 .dtd的文件中 通过外部引用来实现。

两种引入外部DTD的方法

1、

<!DOCTYPE根元素名字 SYSTEM DTD的URL> //可以是Internet 也可以是 一个本地文件相对路径 表示是私有的DTD

例如:

<!DOCTYPE greeting SYSTEM http://www.my.com/xml.dtd>

我们可以直接使用相对URI

2、

<!DOCTYPE 根元素的名称 PUBLICDTD名称 DTD的URL> //引入外部的DTD 必须是Internet上的一个绝对URL DTD 名称只能出现在 PUBLIC 引用中

PUBLIC 用来声明公共DTD DTD名称也称为公共标识符 ,这个DTD 存放在摸个地方 XML解析器 按照某种规则 根据DTD名称检索DTD如果找不到 那么就会按照

DTD的外部URL(也就是系统标示符)来 检索。 如果一个DTD是 ISO标准 那么 DTD名字以 ISO开始 如果是一个非ISO批准的那么以-开始

标准DTD那么以 +开始

例如下面:

"-//xiaowei//xml//EN" 第一个- 表示非标准DTD ,//后表示DTD所有者 第二个//后是描述信息 第三个 //后是语种

<!DOCTYPE root PUBLIC "-//xiaowei//xm//EN"http://www.xiaowei.com//xml.dtd> 这就是一个公共DTD的引用 。

xml文件的组成单元 :
1、xml的声明语句

2、DOCTYPE语句dtd声明

3、注释

4、CDATA区

5、自定义元素

你可能感兴趣的:(xml)