第2章 使用DTD规范XML文档.ppt_第1页
第2章 使用DTD规范XML文档.ppt_第2页
第2章 使用DTD规范XML文档.ppt_第3页
第2章 使用DTD规范XML文档.ppt_第4页
第2章 使用DTD规范XML文档.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 使用DTD规范XML文档,2.1 DTD基本概念,2.1.1 DTD简介 对XML文档所作的规范和约定被称为DTD,也就是文档类型定义。可以把DTD看作是编写某类XML文档的一个模板。,在一个DTD中,具体规定了引用该DTD的XML文档可使用哪些标记、父元素中能够包括哪些子元素、各个元素出现的先后顺序、元素可包含的属性、元素和属性值的数据类型,以及可使用的实体及符号规则等。 DTD由许多约定和声明语句构成,这些语句可以包含在XML文档内部,被称为内部DTD;也可以独立保存为一个文件,而称为外部DTD。,DTD主要具有下列几方面的作用: 可以验证XML文档数据的有效性。 可以为某类XML

2、文档提供统一的格式和相同的结构。 可以保证在一定范围内,XML文档数据的交流和共享。 应用程序设计人员根据DTD就能够知道对应XML文档的逻辑结构,从而编写出相应的处理应用程序。,2.1.2 DTD的基本结构,在一份DTD中,包含了对XML文档所使用的元素、元素间的关系、元素可用的属性、可使用的实体等的定义规则。一份DTD实际上是若干条有关元素、属性、实体等定义和声明语句的集合。,在DTD中可以包含下列各种声明语句: DTD声明开始语句 元素类型声明语句 属性列表声明语句 实体声明语句 注释语句,2.2 DTD对元素的声明,2.2.1 元素声明的语法 语法: 说明: !ELEMENT: 元素声

3、明语句的开始,关键字ELEMENT必须大写。 element_name: 所声明的元素名称。 element_definition:对该元素内容的定义,用来规定该元素可以包含的内容。,2.2.2 各种元素的声明,1基本字符元素的声明 2含子元素的严格声明 2.包含任意内容的声明 4子元素出现次数的声明 5选择性子元素的声明 6空元素的声明 7混合型元素的声明 8实体的声明,1基本字符元素的声明,只有字符数据,即不包含其它元素 ,2含子元素的严格声明,不能直接包含字符数据,并且元素的名称、顺序必须和声明完全一致 ,2.包含任意内容的声明,可以包含任意的内容,次数和顺序也不受限制 2002年入学的

4、学生 20020303,4子元素出现次数的声明,5选择性子元素的声明,在多个指定的子元素中选择其中的一个 ,6空元素的声明, ,7混合型元素的声明,既可以包含字符数据,有可以以任意的顺序包含指定的一个或多个子元素,也可以不包含任何内容。 ,2.2.3 元素声明综合示例,1灵活控制元素出现次数 2元素的分组与嵌套 ,2.3 DTD对属性的声明,2.2.1 属性声明的语法 语法: ,说明: !ATTLIST:表示属性定义语句的开始,ATTLIST是关键字,必须大写。 Element_Name:元素名,用来指定对该元素的属性进行声明。 Attribute_Name:该元素具有的某个属性名,属性的命名

5、规则与元素的命名规则是一致的。 Type:属性的数据类型。 added_declare:属性的附加声明,是一个可选项。,2.2.2 属性的附加声明,1#REQUIRED 表示在相应的XML文档中该元素的这个属性是必须的,并必须给出一个属性值。 2#IMPLIED 表示在XML文档中该元素的这个属性是可有可无的。,2.#FIXED AttValue 表示在XML文档中该元素的这个属性值是所给定的固定值,不能更改。 4Default_Value 在属性的附加声明中如果直接给定一个用引号括起来的字符串,表示预设的默认属性值。,2.2.3 属性的各种类型,某个属性的类型(Type)规定了哪种类型的数据

6、可以作为该属性的值。XML规范允许为元素的属性指定10种不同的类型。,属性的各种类型,1CDATA类型 2ID类型 3. IDREF类型 4IDREFS类型 5ENTITY类型 6ENTITIES类型 7NMTOKEN类型 8NMTOKENS类型 9NOTATION类型 10Enumerated类型,1CDATA类型,CDATA指的是纯文本 我可不这么认为!为什么呢?,2ID类型,ID是用属性值的方式为文件中的某个元素定义唯一标识的方法,它的作用类似于HTML文件中的内部链接。在大多数情况下,ID由处理文件的程序或脚本语言使用。 张三 李四,2.IDREF类型,IDREF类型

7、允许一个元素的属性使用文件中的另一个元素,方法就是把那个元素的ID标识值作为该属性的取值 张三 李四,4IDREFS类型5ENTITY类型6ENTITIES类型,IDREFS :空格也是合法字符 ENTITY:该属性提供把外部二进制数据和 不可析实体链接到文档中的能力。 ENTITYS:若干由空格分隔的不可析实体名 组成ENTITYS类型属性的值,7NMTOKEN类型8NMTOKENS类型,类型NMTOKEN和NMTOKENS是诸多属性类型中面向处理程序的又一个类型。这两个类型用于指示一个有效的名字。 XML文件: blah blah blah,9NOTATION类型,NOTATION类型允许

8、属性值为一个DTD中声明的符号 。 当一个实体是不可拆解的实体时,由于XML校验器无法解读,所以必须声明它的格式来源或类型。 要使用NOTATION类型作为属性的类型,定义的形式是: 属性值类型声明 ,在下面这个例子中,为“电影”元素指定了两种可选设备:一种是movPlayer.exe,用来播映.mov文件,另一种则用来绘制GIF图象。 ,10Enumerated类型,属性也可以被描述为一组可接受的取值的列表,XML文件中对属性的赋值将从这个列表中选取一个值。这类属性属于枚举类型ENUMERATED,不过,关键字ENUMERATED是不出现在DTD定义中的。 ,2.4 DTD的引用,2.4.1

9、 引用内部DTD 语法: 其中: !DOCTYPE:表示DTD声明的开始,关键字DOCTYPE必须大写。 根元素名称:指定XML文档的根元素名称,这个根元素名称必须精确地与文档中实际的根元素名称一致。,DTD声明语句序列:包含在一对方括号( )之内的若干条语句,用来对XML文档中所使用的元素、属性和实体等进行具体声明。 注意:在XML文档中引用内部DTD时,应该在文档开头的XML声明语句中添加 standalone=yes 的说明。,2.4.2 引用外部DTD,1外部DTD的创建 外部DTD是一个独立于XML文档的文件,使用 .dtd为其文件扩展名。此种文件实际上也是一个文本文件,可用任何文本

10、编辑器创建。 在外部DTD中,除了没有内部DTD中的“!DOCTYPE 根元素名称”语句之外,其他声明语句都是一样的。,2外部DTD的引用,根据外部DTD性质的不同,又可将其分为私有DTD文件和公共DTD文件。私有DTD文件是指并未公开的DTD文件,通常属于某个组织内部或个人所有;公共DTD文件则是为某一应用领域或行业所制定,被国际上的标准组织或行业组织广泛认可的、公开的、标准的DTD文件。,引用私有DTD文件的语法格式为: 引用公共DTD文件的语法格式为: 注意:在XML文档中引用外部DTD时,应该在开头的XML声明语句中添加standalone=no 说明。,2.4.3 混合引用DTD,混

11、合引用DTD是指:在一个带有内部DTD的XML文档中,再引用一个或多个外部DTD来共同规范文档中的内容。,2.5 实体的声明与引用,2.5.1 实体的概念与分类 1实体的概念 在XML规格书中,实体(Entity)一词具有广泛的含义,通常是指与XML文档相关的任何下列型式的储存单元。,有效的XML文档本身 外部的DTD子集 定义成DTD中外部实体的外部文档 在DTD中定义的用引号括起来的字符串,2实体的分类,一般实体:用来替代文档具体内容的实体。 参数实体:只能在外部DTD中定义和引用的实体,不能在XML文档中引用。 内部实体:所定义的实体内容并不涉及外部文档。 外部实体:所定义的实体内容为外

12、部独立存在的文件。 可解析实体:包含字符、数字、文本块或标记的实体。 不可解析实体:包含图片、声音等其他二进制数据的实体。,2.5.2 内部一般实体,内部一般实体是指在DTD中定义的一段具体文字内容,通常在XML文档的元素中引用,也可在DTD语句中引用。 在DTD中声明内部一般实体的语法: 说明: !ENTITY :表示开始声明一个实体,关键字ENTITY必须大写。 Entity_Name :表示实体的名称。 Entity_Value :表示实体的具体内容。,在XML文档或者DTD中引用内部一般实体的语法: ,2.5.3 外部一般实体,外部实体所对应的内容通常为一个独立存在的文件,在DTD中定

13、义某个外部实体时需要指定该实体所对应文件的URL。 在DTD中定义外部一般实体的语法: ,说明: !ENTITY :表示开始声明一个实体,关键字ENTITY必须大写。 Entity_Name :表示外部实体的名称。 SYSTEM :是定义为外部实体的关键字。 Entity_URL :该实体所对应文件的URL。 在XML文档中引用外部一般实体的语法: ,2.5.4 内部参数实体,参数实体的内容不仅可以包含文本,还可以包含元素类型声明、属性列表声明、一般实体声明、标签声明、处理指令或注释等。参数实体只能在DTD中引用,通常情况下只能在外部DTD文档中引用。,声明内部参数实体的语法: 说明: !ENTITY :表示开始声明一个实体,关键字ENTITY必须大写。 % :表示声明的是一个参数实体。 Entity_Name :表示内部参数实体的名称。 Entity_Value :表示实体的内容。 在DTD中引用内部参数实体的语法: %Entity_Name;,2.5.5 外部参数实体,一个独

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论