《《文档类型定义》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《文档类型定义》PPT课件.ppt(27页珍藏版)》请在金锄头文库上搜索。
1、XML技术导论技术导论第三章第三章 文档类型定义文档类型定义(DTD)湖南大学软件学院湖南大学软件学院李珩李珩XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n n老问题:老问题:老问题:老问题:XMLXML是什么?是什么?是什么?是什么? XMLXML是一种元标记语言,是一种描述,或者说是定义标记语言的语言。是一种元标记语言,是一种描述,或者说是定义标记语言的语言。n n第二个问题:第二个问题:第二个问题:第二个问题: 如何用如何用如何用如何用XMLXML描述或是定义一个标记语言?描述或是定义一个标记语言?描述或是定义一个标记语言?描述或是定义一个标记语言? XMLX
2、ML通过通过DTD(Document Type Definitions)DTD(Document Type Definitions)来定义一个标记语言来定义一个标记语言n n第三个问题:标记语言第三个问题:标记语言第三个问题:标记语言第三个问题:标记语言HTMLHTML是怎么产生的?是怎么产生的?是怎么产生的?是怎么产生的? HTMLHTML是通过是通过DTDDTD来定义的符合来定义的符合SGMLSGML语法的语法的SGMLSGML文档。文档。 n n第四个问题:第四个问题:第四个问题:第四个问题:DTDDTD是什么?是什么?是什么?是什么?XML技术导论技术导论第三章第三章 文档类型定义(文
3、档类型定义(DTD)n n文档类型定义(文档类型定义(DTD ) DTDDTD(Document Document Type Type DefinitionsDefinitions) 描描述述XMLXML文文档档内内容容的的结结构构,包包括括定定义义XMLXML中中的的元元素素、属属性性、实实体体,并并指指定定元元素素、属性以及实体间的顺序关系。属性以及实体间的顺序关系。 n nDTD文件的作用文件的作用 XMLXML文档要与文档要与DTDDTD相比较,这一过程称为合法性检验。如果文档相比较,这一过程称为合法性检验。如果文档符合符合DTDDTD中的约束,这个文档就被认为是合法的,否则就是不合中
4、的约束,这个文档就被认为是合法的,否则就是不合法的。法的。 DTDDTD为应用程序、组织和兴趣团体提供了共同遵循的方法,同时为应用程序、组织和兴趣团体提供了共同遵循的方法,同时也以文档形式阐述了标记标准并强制遵守此标准。也以文档形式阐述了标记标准并强制遵守此标准。XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n n第五个问题:第五个问题: XML是如何使用是如何使用DTD来定义标记语言?来定义标记语言?XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n什么是有效的什么是有效的XML文档文档 n n格式良好的文档(文档是符合格式良好的文档(文档是
5、符合XMLXML语法的)语法的)n n包含包含DTDDTD文件文件(有定义文档结构的规范)(有定义文档结构的规范)n n合法的文档(合法的文档(XMLXML文档与文档与DTDDTD所定义的相匹所定义的相匹配配) XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n为什么需要为什么需要DTD ?(WHY) 没有规矩,不成方圆没有规矩,不成方圆 规矩:规矩:DTD 方圆:有效的方圆:有效的XML文档文档XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n n创建创建DTD文档文档 (How)实例:定义图书信息格式实例:定义图书信息格式实例:定义图书信息格
6、式实例:定义图书信息格式 问题问题问题问题要求:书籍详细资料按照一定的规则存储,以保证书籍信息格要求:书籍详细资料按照一定的规则存储,以保证书籍信息格式的一致性。式的一致性。 书籍的详细资料包括:书籍的详细资料包括:ISBNISBN、书名、作者(最多为四人)、书名、作者(最多为四人)、出版社、价格、关键字、供书商、库存量、出版社、价格、关键字、供书商、库存量、 库存位置。库存位置。 书籍共有三类:计算机类、经济类、文学类。书籍共有三类:计算机类、经济类、文学类。 书库中存放书籍的区域也相应有三个:计算机类架柜、经济类书库中存放书籍的区域也相应有三个:计算机类架柜、经济类架柜、文学类架柜。架柜、
7、文学类架柜。XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n创建创建DTD文档文档 (How)n n分析分析分析分析n n确定保证数据一致性的方法确定保证数据一致性的方法 使用使用DTDDTD来约束书籍数据的内容结构来约束书籍数据的内容结构n n列出存储书籍详细资料所需要的元素、属性列出存储书籍详细资料所需要的元素、属性n n声明元素、属性,生成相应声明元素、属性,生成相应DTDDTDn n编写编写XMLXML文档,并引用文档,并引用DTDDTDn n验证验证XMLXML的有效性的有效性XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n n创建
8、创建DTD文档文档 (How)n n解决解决解决解决 列出存储书籍详细资料所需要的元素、属性列出存储书籍详细资料所需要的元素、属性问题问题问题问题要求:书籍详细资料按照一定的规则存储,以保证书籍要求:书籍详细资料按照一定的规则存储,以保证书籍信息格式的一致性。信息格式的一致性。 书籍的详细资料包括:书籍的详细资料包括:ISBNISBN、书名、作者(最多为四人)、书名、作者(最多为四人)、出版社、价格、关键字、供书商、库存量、出版社、价格、关键字、供书商、库存量、 库存位置。库存位置。 书籍共有三类:计算机类、经济类、文学类。书籍共有三类:计算机类、经济类、文学类。 书库中存放书籍的区域也相应有
9、三个:计算机类架柜、书库中存放书籍的区域也相应有三个:计算机类架柜、经济类架柜、文学类架柜。经济类架柜、文学类架柜。XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n n创建创建DTD文档文档 (How)n n解决解决解决解决 列出存储书籍详细资料所需要的元素、属性列出存储书籍详细资料所需要的元素、属性元素元素/ /属性属性名称名称描述描述元素元素BOOKLIBRARYBOOKLIBRARY根元素,指明根元素,指明XMLXML文档中存文档中存储储的所有的所有书书籍数据籍数据BOOKBOOK表示每一本表示每一本书书的的详细资详细资料(包括料(包括书书名、作者名、作者等)等
10、)BOOKNAMEBOOKNAME表示每一本表示每一本书书的的书书名名AUTHORAUTHOR表示每一本表示每一本书书的作者的作者PUBLISHERPUBLISHER表示每一本表示每一本书书的出版社的出版社PRICEPRICE表示每一本表示每一本书书的价格的价格KEYWORDKEYWORD表示每一本表示每一本书书的关的关键键字字PROVIDERIDPROVIDERID表示每一本表示每一本书书的供的供应应商商IDID,对对于供于供应应商商资资料是唯一的料是唯一的QUANTITYQUANTITY表示每一本表示每一本书书的的库库存数量存数量属性属性ISBNISBN表示每一本表示每一本书书的出版号,的
11、出版号,对对于每本于每本书书是唯一的是唯一的PLACEPLACE表示每一本表示每一本书书的存放位置,有三个存放区的存放位置,有三个存放区A,B,CA,B,CXML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n n创建创建DTD文档文档 (How)n n声明元素声明元素声明元素声明元素 n nDTDDTD声明元素的语法:声明元素的语法:!ELEMENT n n元素名元素名指明所声明的元素名称,在当前指明所声明的元素名称,在当前DTDDTD中必中必须是唯一的。须是唯一的。n n元素类型元素类型表示声明元素包含的内容类型。表示声明元素包含的内容类型。n n元素内容模型元素内容模
12、型表示声明文档中允许出现的元素、表示声明文档中允许出现的元素、元素间的顺序、出现的次数。元素间的顺序、出现的次数。!ELEMENT BOOK ,PROVIDERID,QUANTITY)XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n nDTD中的元素类型中的元素类型 n nPCDATAPCDATA: !ELEMENT (#PCDATA) 则表示该元素的内容是可析的字符数据,不能在元素中包含子元素。则表示该元素的内容是可析的字符数据,不能在元素中包含子元素。n n空元素(空元素(空元素(空元素(EMPTYEMPTY):):):):!ELEMENT EMPTYn nANY
13、ANY:!ELEMENT ANY 则该元素的结构是可以任意指定的,它可以包含任意多个子元素和则该元素的结构是可以任意指定的,它可以包含任意多个子元素和 字符数据,这个元素完全没有结构限制。字符数据,这个元素完全没有结构限制。n nCONTAINERCONTAINER:!ELEMENT 则该元素既包含可析字符数据又同时包含子元素则该元素既包含可析字符数据又同时包含子元素例:例:例:例: XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n nDTD中的元素内容模型中的元素内容模型例例!ELEMENT ,PROVIDERID,QUANTITY) 元素内容模型中的符号元素内容模
14、型中的符号元素内容模型中的符号元素内容模型中的符号 可以对元素的出现次数、元素是否必须出现等进行定义可以对元素的出现次数、元素是否必须出现等进行定义符号符号描述描述实实例例,以指定的以指定的顺顺序序“与与”BOOKNAMEBOOKNAME,AUTHOR AUTHOR 同同时时出出现现,顺顺序序为为BOOKNAMEBOOKNAME在前,在前,AUTHORAUTHOR在后在后| |“或或”BOOKNAME|AUTHORBOOKNAME|AUTHORBOOKNAMEBOOKNAME或或AUTHORAUTHOR出出现现, ,且且仅仅一次一次?可出可出现现0 0次或次或1 1次次PUBLISHERPUB
15、LISHER?该该元素可以不出元素可以不出现现,若出,若出现则现则只能一次只能一次* *可出可出现现0 0次或多次次或多次AUTHORAUTHOR* *AUTHORAUTHOR可不出可不出现现,也可以出,也可以出现现任意次任意次+ +至少出至少出现现一次一次KEYWORD+KEYWORD+有一个或多个关有一个或多个关键键字出字出现现XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n n创建创建DTD文档文档 (How) n n声明属性声明属性声明属性声明属性n n在在DTDDTD中属性声明的语法:中属性声明的语法:!ATTLIST 实例:实例:!ELEMENT ,PRO
16、VIDERID,QUANTITY) XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n nDTD中常用的属性值类型中常用的属性值类型n nCDATACDATA:表示字符数据值:表示字符数据值:表示字符数据值:表示字符数据值n nIDID:标识符。该:标识符。该:标识符。该:标识符。该IDID必须以字母开头必须以字母开头必须以字母开头必须以字母开头n nEnumerated: Enumerated: 列出取值的范围,只可从中选取一个值列出取值的范围,只可从中选取一个值列出取值的范围,只可从中选取一个值列出取值的范围,只可从中选取一个值n nENTITYENTITY:在:在
17、:在:在DTDDTD中声明的实体中声明的实体中声明的实体中声明的实体 XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n nDTD中的属性默认值类型中的属性默认值类型DefaultDefault:表示使用提供的默认值,如表示使用提供的默认值,如表表示示当当XMLXML文文档档省省略略了了对对BOOKBOOK元元素素的的PLACEPLACE属属性性值值进进行行设设定定时时,该该属属性性的的默默认值就是认值就是“ “A”A”REQUIREDREQUIRED:表表示示每每次次使使用用该该元元素素时时,必必须须提提供供其其属属性性值值,否否则则该该XMLXML文文档为无效档为无
18、效FIXEDFIXED:表示每次使用该元素时,其属性有固定值表示每次使用该元素时,其属性有固定值IMPLIEDIMPLIED:表示该元素的属性可以不提供具体值表示该元素的属性可以不提供具体值 XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n n练习一:创建练习一:创建booklibrary.dtd文档文档 元素元素/ /属性属性名称名称描述描述元素元素BOOKLIBRARYBOOKLIBRARY根元素,指明根元素,指明XMLXML文档中存文档中存储储的所有的所有书书籍数据籍数据BOOKBOOK表示每一本表示每一本书书的的详细资详细资料(包括料(包括书书名、作者名、作者
19、等)等)BOOKNAMEBOOKNAME表示每一本表示每一本书书的的书书名名AUTHORAUTHOR表示每一本表示每一本书书的作者,的作者,最多最多为为四人四人PUBLISHERPUBLISHER表示每一本表示每一本书书的出版社的出版社PRICEPRICE表示每一本表示每一本书书的价格的价格KEYWORDKEYWORD表示每一本表示每一本书书的关的关键键字字, ,至少有一个至少有一个PROVIDERIDPROVIDERID表示每一本表示每一本书书的供的供应应商商IDID,对对于供于供应应商商资资料是唯一的料是唯一的QUANTITYQUANTITY表示每一本表示每一本书书的的库库存数量存数量属性
20、属性ISBNISBN表示每一本表示每一本书书的出版号,的出版号,对对于每本于每本书书是唯一的是唯一的PLACEPLACE表示每一本表示每一本书书的存放位置,有三个存放区的存放位置,有三个存放区A,B,CA,B,CXML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n n练习一:创建练习一:创建booklibrary.dtd文档文档 XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n n练习一:创建练习一:创建booklibrary.dtd文档文档 XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n n练练习习二二:对对给给出出
21、的的booklibrary.dtd文文档档,写成符合其定义的一个写成符合其定义的一个XML文档实例文档实例 XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD) XML技术导论技术导论 张三张三 李四李四 王五王五 中国出版社中国出版社 26.3 XML 计算机技术计算机技术 0021 500 .XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n n使用使用DTD 引用引用引用引用DTDDTD方法有两种:方法有两种:方法有两种:方法有两种:内部内部内部内部DTDDTD引用和外部引用和外部引用和外部引用和外部DTDDTD引用。引用。引用。引用。外部外部
22、DTDn n外部外部DTDDTD:与:与XMLXML文件相互独立文件相互独立, , 扩展名为扩展名为dtddtd,可,可为多个为多个XMLXML文档所共享文档所共享n nXMLXML使用外部使用外部DTDDTD需要在文档中进行声明。声明的格式需要在文档中进行声明。声明的格式为:为:!DOCTYPE URI XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n n使用使用DTD 内部内部内部内部DTDDTDn n内部内部DTDDTD存在于存在于XMLXML文档中,针对某一个文档中,针对某一个XMLXML文档,作为文档,作为XMLXML文档的一部分文档的一部分 n n使用的格
23、式为:使用的格式为:!DOCTYPE 混合混合混合混合DTDDTD 内部内部DTDDTD和外部和外部DTDDTD混合使用。在实际情况中,往往是先混合使用。在实际情况中,往往是先为所有的开发小组提供公共的为所有的开发小组提供公共的DTDDTD作为外部作为外部DTDDTD,然后各,然后各个成员在实际的使用过程中再进行扩展定义,这时的扩展个成员在实际的使用过程中再进行扩展定义,这时的扩展定义常常是使用内部定义常常是使用内部DTDDTD来实现。来实现。XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n实体实体 实体是包含了文档片段的虚拟存储单元,可用来存储实体是包含了文档片段的
24、虚拟存储单元,可用来存储实体是包含了文档片段的虚拟存储单元,可用来存储实体是包含了文档片段的虚拟存储单元,可用来存储XMLXML声明、声明、声明、声明、DTDDTD、其它形式的文本及二进制数据等。、其它形式的文本及二进制数据等。、其它形式的文本及二进制数据等。、其它形式的文本及二进制数据等。 实体是一段代码或数据的代称,这个代称既实体的名字。实体是一段代码或数据的代称,这个代称既实体的名字。实体是一段代码或数据的代称,这个代称既实体的名字。实体是一段代码或数据的代称,这个代称既实体的名字。 按照使用范围分实体可分为按照使用范围分实体可分为按照使用范围分实体可分为按照使用范围分实体可分为 通用实
25、体通用实体通用实体通用实体 和和和和 参数实体参数实体参数实体参数实体 两类:两类:两类:两类: 通用实体既可以在通用实体既可以在XMLXML文档中使用,也可在文档中使用,也可在DTDDTD文档中使用。文档中使用。 参数实体只能在参数实体只能在DTDDTD文档中使用。文档中使用。 XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n n通用实体通用实体 n n通用实体的声明方式:通用实体的声明方式:通用实体的声明方式:通用实体的声明方式:!ENTITY 例如例如例如例如: :声明一个通用实体声明一个通用实体声明一个通用实体声明一个通用实体!DOCTYPE musiclib
26、rary !DOCTYPE musiclibrary !ENTITY pub XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n n通用实体通用实体n n应用到应用到应用到应用到XMLXML文档中:文档中:文档中:文档中:春天春天春天春天&pub;&pub;26.0026.00 XML技术导论技术导论第三章第三章 文档类型定义(文档类型定义(DTD)n n参数实体参数实体n n参数实体的声明方式:参数实体的声明方式:参数实体的声明方式:参数实体的声明方式:!ENTITY % n n在在在在DTDDTD中引用参数实体的语法:中引用参数实体的语法:中引用参数实体的语法:中引用参数实体的语法: %NAME%NAME;例如例如例如例如: :使用参数实体来写:使用参数实体来写:使用参数实体来写:使用参数实体来写: