第3章 XML文档类型定义---- DTD

时间:2025-07-13

清华大学xml 基础教程

第3章 XML文档类型定义 ---- DTD

清华大学xml 基础教程

目标 理解文档类型定义 DTD声明 元素声明 属性声明 实体声明

清华大学xml 基础教程

XML 确认 ----确保XML文档中数据的一致性 符合语法的XML文档称为结构良好 的XML文档。 通过DTD验证的XML文档称为有 效的XML文档。

清华大学xml 基础教程

3.1 DTD概述 文档类型定义--Document Type Definition DTD用来描述XML文档的结构, DTD定义 了XML文档中可用的合法元素。 用DTD 指定:可以在文档中存在的元素、 元素可以具有的属性、在元素内部元素的层 次结构以及元素在整个文档中出现的顺序。4

清华大学xml 基础教程

3.2 DTD声明 DTD可以是一个完全独立的文件,也可以 在XML文件中直接设定。 DTD分为外部DTD(在XML文件中调用另 外已经编辑好的DTD)和内部DTD(在 XML文件中直接设定DTD)两种。

清华大学xml 基础教程

3.2.1 内部DTD 内部DTD是在XML文件的文件序言区域中定 义的。 内部DTD的XML文档的结构为: < ?xml version = "1.0" ?> < !DOCTYPE 根元素名[ 元素描述 ]> 文档数据区.......

清华大学xml 基础教程

<?xml version='1.0' encoding='gb2312'?> <!DOCTYPE poem[ <----------------根元素的名称 <!ELEMENT poem (author,title,content) > <-----------子元素的名称及顺序 <!ELEMENT author (#PCDATA)> <------------------子元素的数据类型 <!ELEMENT title (#PCDATA)> <!ELEMENT content (#PCDATA)> ]> <------------------------结束标签 <poem> <author>王维</author> <title>鹿柴</title> <content>空山不见人,但闻人语声. 返景入深林,复照青苔上. 内部DTD示例 </content> </poem>

3.2.1 内部DTD(续)

注意:例中的定义关键字一定要大写, 如DOCTYPE、ELEMENT、 #PCDATA,且元素名称与数据类型之 间也要有空格。

清华大学xml 基础教程

3.2.2 外部DTD 外部DTD是一个独立于XML文件的文件, 实际上也是一个文本文件,只是使 用.dtd为文件扩展名。 外部DTD的好处是:它可以方便高效地 被多个XML文档所共享。 外部DTD的创建方式、语法和内部DTD 是一样的。

清华大学xml 基础教程

3.2.2 外部DTD (续2-1) 使用外部DTD的XML文档的结构为: < ?xml version = "1.0"?> < !DOCTYPE 根元素名SYSTEM/ PUBLIC "外部DTD文件名及其位置"> 文档数据区.......

清华大学xml 基础教程

3.2.2 外部DTD (续2-2)<? xml version='1.0' encoding='gb2312' ?> <!DOCTYPE poem SYSTEM "ex2.dtd"> <poem> <author>王维</author> 外部DTD使用示例 <title>鹿柴</title> <content>空山不见人,但闻人语声.返景入深林,复照青苔 上.</content> </poem> <?xml version="1.0" encoding="gb2312"?> <!ELEMENT poem (author,title,content)> <!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT content (#PCDATA)>

清华大学xml 基础教程

3.3 DTD语法 一个DTD文档包含– 元素(ELEMENT)的定义规则 – 元素之间的关系规则 – 属性(ATTLIST)的定义规则 – 可使用的实体(ENTITY)或符号 (NOTATION)规则11

清华大学xml 基础教程

3.3.1元素声明——确定元 素及其类型 元素有三种不

同的类型– 数据型(即字符内容) <Text>Hello</Text>

– 元素型(即包含的内容是元素)

– 混合型(包含的内容既有元素又有内容)<para> Hello everybody <bold>quit</bold> </para>

<Letter> <sub>QUIT</sub> <Body>Hello everybody!</Body> </Letter>

清华大学xml 基础教程

3.3.1元素声明——元素的定义(1/5)

语法 <!ELEMENT NAME CONTENT>关键字 元素名称 元素类型

EMPTY-该元素不能包含子元素和文本,但可以有属性-(空元素) ANY-该元素可以包含任何在DTD中定义的元素内容 #PCDATA-可以包含任何字符数据,但是不能在其中包含任何子元素 PCDATA代表字符数据,为防止与关键字混淆,加#前缀 纯元素类型--只包含子元素,并且这些子元素外没有文本 混合类型--包含子元素和文本数据的混合体13

清华大学xml 基础教程

3.3.1元素声明——元素的定义(2/5) EMPTY示例--空元素 <!ELEMENT 人 EMPTY> XML示例:

<家庭> <人 名字="皮诺曹" 性别="男" 年龄="6"/> </家庭> <家庭> <人>皮诺曹</人> <人><大人>皮诺曹爸爸</大人></人> </家庭>

√ ×

清华大学xml 基础教程

3.3.1元素声明——元素的定义(3/5) ANY示例 <!ELEMENT 人 ANY> XML示例: <家庭> <人>皮诺曹</人> <人><大人>皮诺曹爸爸</大人></人> </家庭> 将根元素设为ANY类型后,元素出现的次数和顺序不 受限制。15

清华大学xml 基础教程

3.3.1元素声明——元素的定义(4/5) #PCDATA示例 <!ELEMENT 人 (#PCDATA)>XML 示 例:

<家庭> <人 性别="男" 年龄="6">皮诺曹</人> </家庭> <家庭> <人><大人>皮诺曹爸爸</大人></人> </家庭>

×16

…… 此处隐藏:563字,全部文档内容请下载后查看。喜欢就下载吧 ……
第3章 XML文档类型定义---- DTD.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219