使用DTD规范XML文档.ppt

上传人:sh****n 文档编号:2917879 上传时间:2019-12-04 格式:PPT 页数:46 大小:288.50KB
返回 下载 相关 举报
使用DTD规范XML文档.ppt_第1页
第1页 / 共46页
使用DTD规范XML文档.ppt_第2页
第2页 / 共46页
使用DTD规范XML文档.ppt_第3页
第3页 / 共46页
点击查看更多>>
资源描述
第2章 使用DTD规范XML文档,2.1 DTD基本概念,2.1.1 DTD简介 对XML文档所作的规范和约定被称为DTD,也就是文档类型定义。可以把DTD看作是编写某类XML文档的一个模板。,在一个DTD中,具体规定了引用该DTD的XML文档可使用哪些标记、父元素中能够包括哪些子元素、各个元素出现的先后顺序、元素可包含的属性、元素和属性值的数据类型,以及可使用的实体及符号规则等。 DTD由许多约定和声明语句构成,这些语句可以包含在XML文档内部,被称为内部DTD;也可以独立保存为一个文件,而称为外部DTD。,DTD主要具有下列几方面的作用: 可以验证XML文档数据的有效性。 可以为某类XML文档提供统一的格式和相同的结构。 可以保证在一定范围内,XML文档数据的交流和共享。 应用程序设计人员根据DTD就能够知道对应XML文档的逻辑结构,从而编写出相应的处理应用程序。,2.1.2 DTD的基本结构,在一份DTD中,包含了对XML文档所使用的元素、元素间的关系、元素可用的属性、可使用的实体等的定义规则。一份DTD实际上是若干条有关元素、属性、实体等定义和声明语句的集合。,在DTD中可以包含下列各种声明语句: DTD声明开始语句 元素类型声明语句 属性列表声明语句 实体声明语句 注释语句,2.2 DTD对元素的声明,2.2.1 元素声明的语法 语法: 说明: !ELEMENT: 元素声明语句的开始,关键字ELEMENT必须大写。 element_name: 所声明的元素名称。 element_definition:对该元素内容的定义,用来规定该元素可以包含的内容。,2.2.2 各种元素的声明,1基本字符元素的声明 2含子元素的严格声明 2.包含任意内容的声明 4子元素出现次数的声明 5选择性子元素的声明 6空元素的声明 7混合型元素的声明 8实体的声明,1基本字符元素的声明,只有字符数据,即不包含其它元素 ,2含子元素的严格声明,不能直接包含字符数据,并且元素的名称、顺序必须和声明完全一致 ,2.包含任意内容的声明,可以包含任意的内容,次数和顺序也不受限制 2002年入学的学生 20020303,4子元素出现次数的声明,5选择性子元素的声明,在多个指定的子元素中选择其中的一个 ,6空元素的声明,7混合型元素的声明,既可以包含字符数据,有可以以任意的顺序包含指定的一个或多个子元素,也可以不包含任何内容。 ,2.2.3 元素声明综合示例,1灵活控制元素出现次数 2元素的分组与嵌套 ,2.3 DTD对属性的声明,2.2.1 属性声明的语法 语法: ,说明: !ATTLIST:表示属性定义语句的开始,ATTLIST是关键字,必须大写。 Element_Name:元素名,用来指定对该元素的属性进行声明。 Attribute_Name:该元素具有的某个属性名,属性的命名规则与元素的命名规则是一致的。 Type:属性的数据类型。 added_declare:属性的附加声明,是一个可选项。,2.2.2 属性的附加声明,1#REQUIRED 表示在相应的XML文档中该元素的这个属性是必须的,并必须给出一个属性值。 2#IMPLIED 表示在XML文档中该元素的这个属性是可有可无的。,2.#FIXED AttValue 表示在XML文档中该元素的这个属性值是所给定的固定值,不能更改。 4Default_Value 在属性的附加声明中如果直接给定一个用引号括起来的字符串,表示预设的默认属性值。,2.2.3 属性的各种类型,某个属性的类型(Type)规定了哪种类型的数据可以作为该属性的值。XML规范允许为元素的属性指定10种不同的类型。,属性的各种类型,1CDATA类型 2ID类型 3. IDREF类型 4IDREFS类型 5ENTITY类型 6ENTITIES类型 7NMTOKEN类型 8NMTOKENS类型 9NOTATION类型 10Enumerated类型,1CDATA类型,CDATA指的是纯文本 我可不这么认为! 为什么呢? ,2ID类型,ID是用属性值的方式为文件中的某个元素定义唯一标识的方法,它的作用类似于HTML文件中的内部链接。在大多数情况下,ID由处理文件的程序或脚本语言使用。 张三 zhang 李四 libbb.org ,2.IDREF类型,IDREF类型允许一个元素的属性使用文件中的另一个元素,方法就是把那个元素的ID标识值作为该属性的取值 张三 zhang 李四 li ,4IDREFS类型 5ENTITY类型 6ENTITIES类型,IDREFS :空格也是合法字符 ENTITY:该属性提供把外部二进制数据和 不可析实体链接到文档中的能力。 ENTITYS:若干由空格分隔的不可析实体名 组成ENTITYS类型属性的值,7NMTOKEN类型 8NMTOKENS类型,类型NMTOKEN和NMTOKENS是诸多属性类型中面向处理程序的又一个类型。这两个类型用于指示一个有效的名字。 XML文件: blah blah blah ,9NOTATION类型,NOTATION类型允许属性值为一个DTD中声明的符号 。 当一个实体是不可拆解的实体时,由于XML校验器无法解读,所以必须声明它的格式来源或类型。 要使用NOTATION类型作为属性的类型,定义的形式是: 属性值类型声明 ,在下面这个例子中,为“电影”元素指定了两种可选设备:一种是movPlayer.exe,用来播映.mov文件,另一种则用来绘制GIF图象。 ,10Enumerated类型,属性也可以被描述为一组可接受的取值的列表,XML文件中对属性的赋值将从这个列表中选取一个值。这类属性属于枚举类型ENUMERATED,不过,关键字ENUMERATED是不出现在DTD定义中的。 ,2.4 DTD的引用,2.4.1 引用内部DTD 语法: 其中: !DOCTYPE:表示DTD声明的开始,关键字DOCTYPE必须大写。 根元素名称:指定XML文档的根元素名称,这个根元素名称必须精确地与文档中实际的根元素名称一致。,DTD声明语句序列:包含在一对方括号( )之内的若干条语句,用来对XML文档中所使用的元素、属性和实体等进行具体声明。 注意:在XML文档中引用内部DTD时,应该在文档开头的XML声明语句中添加 standalone=“yes“ 的说明。,2.4.2 引用外部DTD,1外部DTD的创建 外部DTD是一个独立于XML文档的文件,使用 .dtd为其文件扩展名。此种文件实际上也是一个文本文件,可用任何文本编辑器创建。 在外部DTD中,除了没有内部DTD中的“!DOCTYPE 根元素名称”语句之外,其他声明语句都是一样的。,2外部DTD的引用,根据外部DTD性质的不同,又可将其分为私有DTD文件和公共DTD文件。私有DTD文件是指并未公开的DTD文件,通常属于某个组织内部或个人所有;公共DTD文件则是为某一应用领域或行业所制定,被国际上的标准组织或行业组织广泛认可的、公开的、标准的DTD文件。,引用私有DTD文件的语法格式为: 引用公共DTD文件的语法格式为: 注意:在XML文档中引用外部DTD时,应该在开头的XML声明语句中添加standalone=“no“ 说明。,2.4.3 混合引用DTD,混合引用DTD是指:在一个带有内部DTD的XML文档中,再引用一个或多个外部DTD来共同规范文档中的内容。,2.5 实体的声明与引用,2.5.1 实体的概念与分类 1实体的概念 在XML规格书中,实体(Entity)一词具有广泛的含义,通常是指与XML文档相关的任何下列型式的储存单元。,有效的XML文档本身 外部的DTD子集 定义成DTD中外部实体的外部文档 在DTD中定义的用引号括起来的字符串,2实体的分类,一般实体:用来替代文档具体内容的实体。 参数实体:只能在外部DTD中定义和引用的实体,不能在XML文档中引用。 内部实体:所定义的实体内容并不涉及外部文档。 外部实体:所定义的实体内容为外部独立存在的文件。 可解析实体:包含字符、数字、文本块或标记的实体。 不可解析实体:包含图片、声音等其他二进制数据的实体。,2.5.2 内部一般实体,内部一般实体是指在DTD中定义的一段具体文字内容,通常在XML文档的元素中引用,也可在DTD语句中引用。 在DTD中声明内部一般实体的语法: 说明: !ENTITY :表示开始声明一个实体,关键字ENTITY必须大写。 Entity_Name :表示实体的名称。 Entity_Value :表示实体的具体内容。,在XML文档或者DTD中引用内部一般实体的语法: ,2.5.3 外部一般实体,外部实体所对应的内容通常为一个独立存在的文件,在DTD中定义某个外部实体时需要指定该实体所对应文件的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 外部参数实体,一个独立的DTD文档可以被定义为一个外部参数实体,并可通过这个DTD文档的URL对其进行引用。 声明外部参数实体的语法: 说明: !ENTITY :表示开始声明一个实体,关键字ENTITY必须大写。 % :表示定义的是参数实体。 Entity_Name :表示实体的名称。 SYSTEM :是定义为外部实体的关键字。 Entity_URL :外部实体文件的URL。 在DTD中引用外部参数实体的语法: %Entity_Name;,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!