687文档类型定义DTD.ppt

上传人:sccc 文档编号:5507412 上传时间:2023-07-15 格式:PPT 页数:27 大小:754.01KB
返回 下载 相关 举报
687文档类型定义DTD.ppt_第1页
第1页 / 共27页
687文档类型定义DTD.ppt_第2页
第2页 / 共27页
687文档类型定义DTD.ppt_第3页
第3页 / 共27页
687文档类型定义DTD.ppt_第4页
第4页 / 共27页
687文档类型定义DTD.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《687文档类型定义DTD.ppt》由会员分享,可在线阅读,更多相关《687文档类型定义DTD.ppt(27页珍藏版)》请在三一办公上搜索。

1、文档类型定义(DTD),目标,章节目标:通过本章学习,你应该能够:掌握DTD的基本结构掌握DTD在XML文档中的引用掌握DTD中元素和属性的声明,引言,在实际开发中,我们经常会遇到这样一个有趣的问题:如何与他人交流自己设计的结构?目前很多主流的浏览器已经提供了对XML的支持,但这种支持仅限于对XML内容的显示。如果所开发的程序还包含了新的词汇表,而通过这些新的词汇就可以明白作者的设计结构,那么作为XML词汇表的设计者,就必须通过某种通用的方式来说明词汇表的语法规则。为此,XML 1.0提供了一种机制文档类型定义(DocumentType Definition,DTD),并将其作为规范的一部分。

2、,DTD文档结构,例3-1含有内部DTD的XML文档。,张三 001 A公司(010)62345678 五街1234号 北京市 北京,DTD中的元素声明,元素声明的语法 元素类型声明的基本语法如下:控制元素的内容 根据元素所包含的内容,即通过元素内容模型(ECM)可以将元素内容类型归纳为以下六种:简单类型:元素内容只能是文本字符内容,且没有属性;包含简单内容的复杂类型:元素内容只能是文本字符内容,但可以有属性;包含复杂内容的复杂类型:元素内容可以包含子元素,也可以有属性;混合内容类型:元素内容既可以有文本字符内容,也可以包含子元素,同时还可以有属性;空内容类型:元素内容为空,但可以有属性,此类

3、元素一般都带有属性;任何内容类型:元素内容不受限制,也可以有属性。,简单类型声明,简单类型表示元素只能含有文本字符,声明语法如下:例如对例3-1中的“说明”元素的声明:对于这个声明,以下的“说明”元素的使用都是合法的:某公司部分联系人信息,包含简单内容的复杂类型声明,带有简单内容的复杂类型的元素类型声明(ETD)采用的结构与简单类型声明的结构一样。但是在该元素上还有属性定义,即还要在DTD 中给该元素声明属性。如例3-1中的“电话”元素的声明:对于这个声明,“电话”元素的以下使用是合法的:(010)62345678 13880443013,包含复杂内容的复杂类型声明,复杂内容表示元素内容可以包

4、含其他元素作为该元素的子元素。复杂类型表示该元素上可以有属性。对复杂内容的声明,只需将含有简单内容的复杂类型的声明中内容模型(ECM)部分改为相应的子元素即可,语法如下:对于所包含子元素,可以控制其出现的先后顺序,出现的次数,从子元素中进行选择,还可以对子元素进行分组。,(1)控制子元素出现的先后顺序 在这种格式下,元素拥有哪些子元素、每个子元素出现的次数和位置都有明确的规定,在具体的文档实例中,必须严格执行。这就是子元素列表的设置方式。语法如下:如:这个声明中,“个人信息”就可以包含两个“喜好”子元素,以下实例是合法的:张三 男 书法 音乐,(2)控制元素出现的次数 可以利用简单的符号来控制

5、元素出现的次数。DTD支持的可以控制元素出现次数的符号有:?0次或1次 1次或多次 0次或多次,即任意次(3)从元素中进行选择 有时需要在两个或多个互斥的元素中选择其中一个。从多个元素中进行选择使用“或”符号即“|”,语法如下:如:,(4)对子元素进行分组 对子元素进行分组的语法如下:!ELEMENT element(child_element,(child_element,),)如:,混合内容类型声明,混合内容类型的元素允许其内容可以既包含字符数据又含有子元素。声明此类元素的基本语法如下:例如:元素既有字符数据又可包含子元素,从表面上看元素内容的限制少了,但这样会扰乱文档的层次结构,一般在完

6、成的文档中是不应该出现这种混合元素的。从技术上说,可以轻易地建立一个元素来包含这些字符数据。包含混合内容的元素在实际应用中,用的较少。,空内容类型声明,在XML实例文档中,还可能有这样的元素,元素本身不包含任何的内容,但可以有属性。这种元素是声明语法如下:例如:在XML实例文档中,使用如下:一般情况下,空元素都包含属性,否则该元素的出现没有多大的意义。,任何内容类型声明,这是对于元素内容的最为宽松的限定,实际对元素内容几乎没有任何的要求,语法如下:例如:!ELEMENT 说明 ANY 实际应用中,除非文档明确要求使用这样的元素,否则最好避免使用这种设定。过分的滥用将导致文档结构的不明确,这与使

7、用DTD的初衷背道而弛。应该尽可能准确地描述每个元素的内容。,DTD中的属性声明,同元素一样,所有有效的XML文档中使用到的属性也必须先在DTD中进行声明。声明的内容包括属性在哪个元素上使用,属性的名称,属性值的类型,属性默认值,以及元素是否必须要有该属性等信息。属性声明语法 单个属性的声明:同一元素上多个属性的声明,即属性列表声明:,属性默认值的定义,在DTD中声明属性的默认值时,可以通过设定Keyword的值,对属性的取值作出一些规定,根据这些规定的具体的情况,属性的默认值又可以分为以下4类。1、将Keyword设置为“#IMPLIED”:表示该属性是可选的,即在XML 实例文档中,该可以

8、有该属性,也可以没有。声明语法如下:,2、将Keyword设置为“#REQUIRED”:表示属性是必须的,即在XML 实例文档中,必须使用该属性。声明语法如下:3、将Keyword设置为“#FIXED”:表示该属性的值是固定不可变的,在这种情况下,必须给出属性的默认取值。声明语法如下:4、没有设置Keyword,直接给出默认值,声明语法如下:,属性的类型,DTD中共有十种数据类型:,DTD的引用,内部DTD的引用 使用内部DTD对XML文档的有效性进行验证的格式如下:Xml文档主体外部DTD的引用 外部DTD的基本格式如下:元素、属性或实体的声明部分,外部DTD,外部DTD文件根据其性质,又可

9、以分为私有(或系统)DTD文件和公共DTD文件两种。1、私有(系统)DTD文件的引用 在XML实例文档中引用私有DTD文件的格式如下:2、公共DTD文件的引用 在XML实例文档中引用公共DTD文件的格式如下:,既引用外部DTD又引用内部DTD,如果既想引用外部DTD又想包含内部DTD,可以使用如下格式:或者,实体的定义和使用,XML中的实体机制是一种可以节省大量时间的工具,而且也是将多种不同类型的数据插入XML文件的方法。实体就是包含了文档片断或者说部分文档内容的虚拟存储单元,用来存储XML声明、DTD、各种元素或者其他形式的文本和二进制数据。在XML实例文档中可以通过实体名称来代替实体的具体

10、内容。XML处理器或其他XML应用程序在分析实例文档时,将使用实体的具体内容来代替文档中的实体名称,组成一个完整的文档。,实体分类,1、按照实体内容的位置分类 按照实体内容的位置可将实体分为两类:内部实体:实体所代表的内容和实体声明在同一个文档中,即实体的内容在声明中给出,内部实体是可析实体。外部实体:实体所代表的内容在实体声明文档之外的文档中。2、按照实体内容本身分类 按照实体内容本身可以将实体分为两类:可析实体:实体的内容是可解析的XML文本、字符、数据等。不可析实体:实体的内容是XML处理器不能直接解析的,如图像、声音等二进制数据。不可析实体的内容是一种资源,每个不可析实体都应有一个相关

11、联的用符号名称标识的符号(Notation)。3、按照实体被使用的位置分类 按照实体被使用的位置可将实体分为两类:一般实体:实体只能在XML实例文档中被引用。参数实体:实体只能在DTD中被引用,而且它肯定是一个可析实体。,一般实体的定义和使用,1、内部一般实体的定义和使用 内部一般实体的作用类似于一般编程语言中的宏替换。内部一般实体只能在XML文档的内部定义和使用。定义内部一般实体的格式如下:2、外部一般实体的定义和使用 外部一般实体是存在于XML文档之外的独立XML文档片段,可以是一个完整的XML实例文档。引用外部一般实体时须通过URL来定位该实体。定义外部一般实体的格式如下:,参数实体的定义和使用,1、内部参数实体的定义和使用 内部参数实体的定义格式如下:2、外部参数实体的定义和使用 在独立的DTD中,可以使用其他独立DTD文档中的定义,这就是外部参数实体的使用。外部参数实体的作用与外部一般实体的作用相似。外部参数实体的定义格式如下:,小结,本章介绍了:DTD的文档结构在DTD中对元素、属性等进行声明的方法实体的分类、定义和使用DTD的引用,作业,现有如下的DTD定义:请根据这个DTD的定义,写出一个有效的XML实例文档。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号