《第2章 XML数据的底层结构—DTD 和XML Schema.ppt》由会员分享,可在线阅读,更多相关《第2章 XML数据的底层结构—DTD 和XML Schema.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Ahead Institute of Software and Technology第2章 XML数据的底层结构DTD 和XML Schema2.1 XML类型定义语言DTD 2.1.1 XML类型定义语言DTD 2.1.2 XML文档和DTD的匹配2.2 XML模式Schema 2.2.1 Schema与DTD的区别和优势 2.2.2局部和全局定义2.2.3 Schema的基本结构2.2.4 简单类型2.2.5 复杂类型Ahead Institute of Software and Technology2.1 XML类型定义语言DTDDTD:用来定义XML文档的逻辑结构的文件元素属性与实体元
2、素内容之间的相互关系。引例:通讯录分析:数据库结构XML文件结构文档结构的规定:DTDXML文档:格式良好,有效PersonNameAddressPhoneEmailSexCityStateStreetZipAhead Institute of Software and Technology2.1 XML类型定义语言DTD2.1.1 DTD语法2.1.1.1 元素定义1.元素声明标准的标准的XML标标记记2.元素内容类型定义关键字EMPTY:空元素,只能有属性关键字ANY:不限#PCDATA:除标记以外的一切字符数据Ahead Institute of Software and Technol
3、ogy子元素:子元素:元素可以包含的下一级元素序列:按定义的次序依次出现,且只出现一次.定义的递归性Ex:(Name,Address,Phone,Email)选择:多个子元素中选择其一Ex:Phone(Tel|Mobile)结合使用混合类型混合类型:元素既包含PCDATA,又包含子元素 Ahead Institute of Software and Technology 3.元素出现次数指示符:子元素说明之后?字符字符 它说明元素可以出现0次或1次。*字符字符 它说明元素可以不出现,或出现1次或多次。+字符字符 它说明元素必须出现至少一次,或者说可以出现一到多次 Ahead Institute
4、 of Software and Technology2.1.1.2 属性定义1属性声明 注意点:属性名的命名规则同元素同一元素中属性名应惟一默认值一般用双引号2.内容类型CDATA:字符数据枚举类型:选择其中之一ID:标识文档中的元素,其名必须是合法的XML名,用于惟一地标识XML元素。Ex2.6 IDREF/IDREFS:参照引用文档中另一个元素的ID属性Ahead Institute of Software and Technology3属性的默认值#REQUIRED:必须具有该属性,否则文档无效#IMPLIED:属性可有可无#FIXED:不用明确指明属性,如指明则必须是默认值。直接 指
5、明:Ahead Institute of Software and Technology2.1.2 XML文档和DTD的匹配2.1.2.1 内部DTD语法:XML文档声明XML文档2.1.2.2 外部个人DTD共享使用同一个DTDDTD文件的文件扩展名为dtdXML文件中提供一个指向该文件的URL Ahead Institute of Software and Technology2.1.2.3 实体的定义 实体类型 相当于变量Ahead Institute of Software and Technology2.1.2.4 实体的定义1 内部一般实体语法:XML文档中的引用:&实体名;效果分
6、析2.1.2.2 外部个人DTD共享使用同一个DTDDTD文件的文件扩展名为dtdXML文件中提供一个指向该文件的URL Ahead Institute of Software and Technology2.2 XML模式Schema2.2.1 Schema与DTD的区别和优势模式(Schema)所起的作用与DTD相同,也是由W3C开发的。与 DTD相比,XML模式具有如下的几个优点:DTD是用一种与 XML不同的语法编写的,而XML模式使用的是一种类XML的语言。DTD中的所有声明都是全局声明,而XML模式则既有全局声明也有局部声明,可以视情况而定。DTD不能对一给定的元素或属性的数据类型
7、进行定义,而XML模式具有一套完整的数据类型系统,它允许对数据类型如整型,时间型或字符串型等进行详细定义。Ahead Institute of Software and Technology2.2.2局部和全局定义在DTD中,每个元素都被声明为全局的,所以每个元素必须有一个唯一的名字并且只能声明一次。元素可被多个其他元素所引用,但在这些情况下,它们的定义必须完全相同。然而在XML模式中,上下文是非常重要的。在模式的顶层声明的元素被认为是全局声明。在定义一个复杂类型时,可以参考和使用这些全局定义的元素作为该类型的一个子部分,也可以同时定义一些新的局部元素,但作用域被限制在该复杂类型之内。Ahea
8、d Institute of Software and Technology2.2.3 Schema基本结构和使用 This is my very first schema.It does not have any elements yet,but it will.Ahead Institute of Software and Technology2.2.4简单类型2.2.4.1简单类型的定义2.2.4.2简单类型的种类(见下图)Ahead Institute of Software and TechnologyAhead Institute of Software and Technolog
9、y数据类型的说明ur-Type 类别表示在 XML 模式数据类型中存在整个类型系统层次结构的一个基或根。XML 模式中的任何数据类型都将 ur-Type 作为其父亲或祖先。ur-Type 的角色类似于 Java 中的 java.lang.Object,后者是 Java 中所有内置和用户定义类的基类。类似地,ur-type 是 XML 模式中的所有数据类型的基。Ahead Institute of Software and Technology数据类型的说明anyType 数据类型是一种具体的 ur-Type,根据上下文,它可以作为复杂类型(非标量数据,即元素)或作为简单类型(标量数据)来使用。
10、anySimpleType 数据类型也是一种具体的 ur-Type,并且是所有内置数据类型的父亲和所有用户派生标量数据类型的祖先。它不同于 anyType,这是因为它只可以存放任意标量数据类型对应的标量数据,而 anyType 可以存放标量和非标量数据。Ahead Institute of Software and Technology2.2.4.3自定义的简单类型有时可以对各种简单类型进行适当的修改以更好地满足需要,形成自定义的简单类型。定义过程分为两个步骤:选择一个合适的简单类型作为基类型对此基类型添加一些限制条件,例如:指定其值的一个有限的范围,指定其值的一个确定的集合,或者指定值的格式
11、等。Ahead Institute of Software and Technology 2.2.4.4对元素自定义格式 2.2.4.5 数值的嵌入和范围的设定 2.2.4.6枚举类型的定义 2.2.4.7列表类型的定义 2.2.4.8限制简单类型的长度 2.2.4.9在模式中设定XML元素的值 2.2.5 复杂类型 2.2.5.1复杂类型概述 XML中有四种复杂类型的元素:第一种类型是“只含元素”类型,它只能含有子元素或属性,而不能含有文本。第二种类型是“只含文本”类型,它只能含有文本和属性,而不能含有子元素。Ahead Institute of Software and Technolog
12、y 第三种类型是“空元素”类型,它可以有属性,但不能含有子元素或文本。第四种类型是“混合内容”类型,它可以包含元素,属性和文本的组合。2.2.5.2“只含元素”的元素定义 一个复杂的“只含元素”的元素是由一系列的简单和/或其他复杂的元素构成。2.2.5.3“只含文本”的元素定义 该类型有点类似于一个只含文本的简单类型,但不同的是它也可以有属性。Ahead Institute of Software and Technology 2.2.5.4 空元素的定义 空元素不包含任何内容,但可以有属性。2.2.5.5 混合内容的元素定义 XML模式中允许一个字段既包含文本有包含其他子字段的混合内容元素。2.2.5.6 复杂类型的元素定义 2.2.5.7组的定义 有时一组元素会在模式的多个地方出现。如果能给一元素赋予一个名称,然后在需要时通过调用组名来引用这组元素,这是很方便的。2.2.5.8属性定义 2.2.5.9一个案例