《xml应用与开发》第02章[dtd与命名空间]理论

上传人:san****019 文档编号:70849119 上传时间:2019-01-18 格式:PPT 页数:38 大小:549.81KB
返回 下载 相关 举报
《xml应用与开发》第02章[dtd与命名空间]理论_第1页
第1页 / 共38页
《xml应用与开发》第02章[dtd与命名空间]理论_第2页
第2页 / 共38页
《xml应用与开发》第02章[dtd与命名空间]理论_第3页
第3页 / 共38页
《xml应用与开发》第02章[dtd与命名空间]理论_第4页
第4页 / 共38页
《xml应用与开发》第02章[dtd与命名空间]理论_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《《xml应用与开发》第02章[dtd与命名空间]理论》由会员分享,可在线阅读,更多相关《《xml应用与开发》第02章[dtd与命名空间]理论(38页珍藏版)》请在金锄头文库上搜索。

1、第02章,DTD与命名空间,目标,什么是DTD 为什么要用DTD 如何创建DTD 元素的定义 属性的定义 定义实体 应用命名空间,什么是DTD,文档类型定义-Document Type Definition DTD用来描述XML文档的结构,一个DTD文档包含: 元素(ELEMENT)的定义规则 元素之间的关系规则 属性(ATTLIST)的定义规则 可使用的实体(ENTITY)或符号(NOTATION)规则 DTD文档与XML文档实例的关系 类与对象 数据库表结构与数据记录,为什么要用DTD,有了DTD,每个XML文件可以携带一个自身格式的描述。 有了DTD,不同组织的人可以使用一个通用DTD用

2、来交换数据。 应用程序可以使用一个标准DTD校验从外部世界接受来的XML数据是否有效 可以使用DTD校验自己的XML数据,如何创建DTD文档(1/4),DTD文档的声明及引用 内部DTD文档 外部DTD文档 内外部DTD文档结合 ,如何创建DTD文档(2/4), 王维 鹿柴 空山不见人,但闻人语声. 返景入深林,复照青苔上. ,注意:例中的定义关键字一定要大写,如DOCTYPE、 ELEMENT、#PCDATA,且元素名称与数据类型之间也要有空格。,内部DTD示例,如何创建DTD文档(3/4), 王维 鹿柴 空山不见人,但闻人语声.返景入深林,复照青苔上. ,外部DTD示例,如何创建DTD文档

3、(4/4), 王维 鹿柴 空山不见人,但闻人语声.返景入深林,复照青苔上. ,内部和外部DTD示例,元素的定义 (1/5),语法 ,关键字,元素名称,EMPTY该元素不能包含子元素和文本,但可以有属性(空元素) ANY该元素可以包含任何在DTD中定义的元素内容 #PCDATA可以包含任何字符数据,但是不能在其中包含任何子元素 纯元素类型只包含子元素,并且这些子元素外没有文本 混合类型包含子元素和文本数据的混合体,元素类型,元素的定义(2/5),EMPTY示例-空元素 皮诺曹 皮诺曹爸爸 ,元素的定义(3/5),ANY示例 皮诺曹 皮诺曹爸爸 将根元素设为ANY类型后,元素出现的次数和顺序不受限

4、制。,元素的定义(4/5),#PCDATA示例 皮诺曹 皮诺曹爸爸 ,元素的定义(5/5),组合类型示例 ,修饰符号,属性的定义,语法 ,CDATA文本 ID 编号且是唯一的(值) IDREF/IDREFS NMTOKEN/NMTOKENS Enumerated ENTITY/ENTITIES NOTATION NOTATION(enumerated),#REQUIRED(在元素内部) #IMPLIED #FIXED value Default value,属性类型 CDATA,属性值可以是任何字符(包括数字和中文),请注意这里的CDATA与前面讲过的CDATA的区别 #PCDATA与CDAT

5、A的区别,属性类型NMTOKEN/NMTOKENS,NMTOKEN是CDATA 的一个子集,表示属性值必须是英文字母、数字、句号、破折号、下划线或冒号(不能是中文!)。 NMTOKENS与NMTOKEN类似,包含多个由空格分隔的字符。, 八阵图 功盖三分国,名成八阵图, 江流石不转,遗恨失吞吴. , 八阵图 功盖三分国,名成八阵图, 江流石不转,遗恨失吞吴. ,属性类型 ID,表明该属性的取值必须是唯一的。,ID属性值必须是合格的XML名字,属性类型- IDREF/IDREFS,IDREF属性的值指向文档中其它地方声明的ID类型的值。 IDREFS同IDREF,但是可以具有由空格分开的多个引用

6、。,空格,属性类型枚举,事先定义好一些值,属性的值必须在所列出的值的范围内。,属性的约束- #REQUIRED,元素的所有实例都必须有该属性的值(NOT NULL) 语法: DTD 示例: XML 示例: ,属性的约束 #IMPLIED,元素的实例中可以忽略该属性(NULL)。 语法: DTD示例: XML示例: ,属性的约束 #FIXED,元素实例中该属性的值必须为指定的固定值。 语法: DTD示例: XML示例: ,属性的约束默认值,为属性提供一个默认的值 语法: DTD示例: XML示例: ,实体,作用:避免重复输入 (宏、变量) XML中五个预定义实体 自定义实体语法: 引用已定义的实

7、体: ,属性类型ENTITY/ENTITIES,ENITITY类型的属性的值必须对应一个在DTD文档内声明的实体。通常用来处理外部的二进制数据文件,如图形、音效等 ENTITIES类型的属性的值与ENITITIES类似,不同的是可以包含多个由空格分开的实体。, A001 ,定义实体内部实体,语法: DTD 示例: XML 示例: ,定义实体外部实体,语法: DTD 示例: XML 示例: ,实体类型(1/5),实体类型:普通实体、外部实体、参数实体、外部参数实体,实体类型(2/5),普通实体的示例,实体类型(3/5),外部实体的概念实际上很简单,比如在上面的例子中,我们的实体定义为: 这里表示

8、用“$“来代替currency,但是如果currency指代的内容很大很复杂的时候,我们可以用一个外部文件来保存这部分的内容。比如采用如下的代码: 这里表示用文档http:/somewebsite/somecategory/something.xml来表示实体currency的具体内容。需要指出的是,这里的something.xml文档必须是一个格式完善的XML文档。 上面就是外部实体的概念。,实体类型(4/5),所谓参数实体的概念就是说该实体实际上不是在具体实例化文档中使用,而是在DTD文档内部被使用,比如我们可以定义一个如下的实体: 然后可以在DTD内部通过%地址;来引用它,具体例子如下:

9、 上面就是参数实体的概念。,实体类型(5/5),外部参数实体和参数实体的关系和外部实体与普通实体的关系一样,也就是说,实体的内容不是在两个引号之间表示,而是用一个外部的XML文档来表示,比如: 然后可以在DTD内部通过%地址;来引用它。这里%地址;相当于一个普通的元素(ELEMENT),这就是外部参数实体的概念。,XML 命名空间 2-1,在 XML 文档中可以用作元素或属性名称的名称集合 命名空间使浏览器可以执行以下操作: 组合来自不同源的文档,并有助于识别元素或属性的源 访问 DTD 或用于验证文档的元素和属性的其他描述 Uniform Resource Identifier(统一资源标识

10、符,URI)识别 XML 的命名空间 Uniform Resource Name(统一资源名称,URN)是标识 Internet 资源的全球唯一编号 Uniform Resource Locator (统一资源定位符,URL)包含对 Web 上的某个文档或 HTML 页面的引用,命名空间 的必要性,有助于标准化元素和属性, 并为它们加上唯一的标志,确保元素名称中没有冲突, 并阐明了它们的来源,XML 命名空间 2-2,演示:示例 6,命名空间声明,属性和命名空间,除非带有前缀,否则属性属于它们的元素的命名空间,. . . 第三批次 第一批次 午班批次 . . .,. . . xmlns= “h

11、ttp:/www.Aptech_edu.ac“ xmlns:tea= “http:/www.tea.org“ 第三批次 第三批茶 午班批次 . . .,Aptech 的类元素使用了茶业领域的 tea:type 属性,可以包括两个名称相同但属于不同命名空间的属性。, 第一批茶,命名空间应用程序,演示:示例 7, 夜班培训批次 早班培训批次 午班培训批次 第一批茶批号 333 第二批茶批号 222 ,命名空间的声明,告诉用户此 batch 元素在 http:/www.Aptech_edu.ac 中定义,允许验证和处理关于这两批茶的信息,总结 2-1,DTD 指定了 XML 文档的语法结构,因此,使 XML 解析器能够理解和解释文档的内容 DOCTYPE标识加SYSTEM关键字用于在xml文件中引用dtd文件 DTD 分为两类:外部 DTD和内部 DTD 实体使我们能够为大段文本创建一个别名,这样,在文档中,我们只需引用此别名就可以引用相同的一段文本 命名空间使我们能够组合来自不同源的文档,并可以识别元素或属性的源,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号