(计算机软件与理论专业论文)xml在关系数据库中存储技术研究.pdf_第1页
(计算机软件与理论专业论文)xml在关系数据库中存储技术研究.pdf_第2页
(计算机软件与理论专业论文)xml在关系数据库中存储技术研究.pdf_第3页
(计算机软件与理论专业论文)xml在关系数据库中存储技术研究.pdf_第4页
(计算机软件与理论专业论文)xml在关系数据库中存储技术研究.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

x m l 在关系数据库中存储技术研究 计算机软件与理论 叶开珍 叶小平副教授 摘要 h t m l 作为i n t e r n e t 上传统的描述语言,随着网络应用的深入其局限性逐渐显 现,x m l 已经成为互联网上数据表示和数据交换的标准格式。随着x m l 数据的增加, 如何有效地存储和管理x m l 文档成为一个非常重要的问题。目前主要的存储方法有: x m l 原生数据库、面向对象数据库、关系数据库等。关系数据库由于技术成熟、应 用广泛成为目前研究的热点。早期大多数研究是基于d t d 模式开展的,但d t d 缺乏 对文档结构、属性、数据类型等约束的足够描述。另外由于x m l 数据和关系数据在 组织上的差异,对于多值元素、递归元素以及混合内容元素的映射等难点问题也一 直没有得到有效的解决。 因此,本文开展了基于x s d 模式的x m l 文档到关系数据库的存储技术研究。论 文的主要工作包括: ( 1 ) 在借鉴基于代价的p - s c h e m a 存储模型的基础上,提出了e - s c h e m a 存储模 型。e - s c h e m a 是与x s d 等价的x m l 模式文件,主要对p - s c h e m a 从以下方面进行改 进和扩展:一是消除了多值元素、可选择元素、嵌套元素;二是保留了约束信息, 如关键字、唯一性等等。 ( 2 ) 实现了从e - s c h e m a 到关系模式的映射和x m l 文档到关系数据库的存储。 e - s c h e m a 因为结构简单,保留了约束信息,因此可以更加容易、更加准确地映射到 关系模式。 最后从实验上证明了e - s c h e m a 的可行性和有效性。 关键字:x m l :存储:关系数据库:x s d t h es t u d yo f x m l s t o r a g et e c h n i q u ei nr e l a t i o n a ld a t a b a s e c o m p u t e rs o f t w a r ea n dt h e o r y y ek a i z h e n a s s o c i a t ep r o y ex i a o - p i n g a b s t r a c t h t m l ,a sat r a d i t i o n a ld e s c r i p t i o nl a n g u a g eo nt h ei n t e r n e t ,i t sl i m i t e d n e s sh a s b e c o m em o r ea n d m o r ea p p a r e n tw i t ht h ed e e pu s eo f w e ba p p l i c a t i o n s ,x m lh a sa k e a d y b e c o m et h es t a n d a r df o r m a tf o rd a t ap r e s e n ta n dd a t ae x c h a n g eo nt h ei n t e r n e t b u tw i t h t h ei n c r e a s i n gu s eo f x m ld a t a ,i ti sa ni m p o r t a n tp r o b l e mo f h o wt os t o r a g ea n dm a n a g e t h e s ex m ld o c u m e n t s t h r e em a i nm e t h o d sa r ea sf o l l o w :n a t i v ex m ld a t a b a s e , o b j e c t o r i e n t e dd a t a b a s ea n dr e l a t i o n a ld a t a b a s e r e l a t i n n a ld a t a b a s eh a sb e c o m et h e d o m i n a n ta p p r o a c hu pt on o wa c c o r d i n gt oi t sm a t u r et e c h n i q u ea n dw i d ea p p l i c a t i o n s t h em a j o rm a p p i n gm e t h o d se x i s t e dn o wu s ed t d a si t ss c h e m a , b u td t dh c k sa b i l i t i e s d e s c r i b i n gx m ld o c u m e n t ss t r u c t u r e ,a t t r i b u t e sa n dd a t at y p e se f f i c i e n t l y m o r e o v e r , d u et ot h eg r e a td i f f e r e n c eb e t w e e nx m ld a t aa n dr e l a t i o n a ld a t ai ns t r u c t u r e ,s o m e d i f f i c u l tp r o b l e m ss u c ha sm u l t i v a l u ee l e m e n tm a p p i n g ,r e c u r s i v ee l e m e n tm a p p i n ga n d m i x c o n t e n te l e m e n tm a p p i n ga r en o tr e s o l v e de f f e c t i v e l y i nt h i st h e s i s if o c u so nt h er e s e a r c ho fx m ld o c u m e n tt h a ti sb a s e do nx s d s t o r e di nr e l a t i o n a ld a t a b a s e t h ep r i m a r yt a s k so f t h ep a p e ra r ea sf o l l o w s : ( 1 ) b a s e do nt h ec o s t - b a s em a p p i n gm o d e lp s c h e m a ,ib r i n gf o r w a r de - s c h e m a e s c h e m ai sa ne q u i v a l e n te x p r e s s i o no fx s da n dh a sm a d es o m ei m p r o v e m e n ta n d e x p a n s i o nt op s c h e m a o n ei sa b o u tm u l t i - v a l u em a p p i n g , r e c u r s i o nm a p p i n g ,t h eo t h e r i sc o n s t r a i n tp r e s e r v e d ,s u c ha sk e ya n du n i q u e n e s s , e r e ( 2 ) c o m p l e t et h em a p p i n gf r o me s c h e m at or e l a t i o n a ls c h e m aa n dt h el o a d i n g f r o mx m ld o c u m e n tt or e l a t i o n a ld a t a b a s e b e c a u s eo fs i m p l i c i t ya n ds e m a n t i c p r e s e r v e d ,e s c h e m ac a n h em a p p e di n t or e l a t i o n a ld a t a b a s ee a s i l ya n de f f i c i e n t l y a tl a s t ,e s c h e m ai sp r o v e dt ob ee f f i c i e n ta n df e a s i b l et h r o u g he x p e r i m e n t k e y w o r d s :x m l ;s t o r a g e ;r e l a t i o n a ld a t a b a s e ;x s d 论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工 作所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集 体已经发表或撰写过的作品成果。对本文的研究作出重要贡献的个人和集体,均已 在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名叫彳晦 同期:硼年? 月码日 f 学位论文使用授权声明 本人完全了解中山大学有关保留、使用学位论文的规定,即:学校有权保 留学位论文并向国家主管部门或其指定机构送交论文的电子版和纸质版,有权 将学位论文用于非赢利目的的少量复制并允许论文进入学校图书馆、院系资料 室被查阅,有权将学位论文的内容编入有关数据库进行检索,可以采用复印、 缩印或其他方法保存学位论文。保密的学位论文在解密后使用本规定。 学位论文作者签名:、才力才 吼砰月碍日 导师签名:计j 予 1 月吁朋 年 j 1 , 扒 期 日 1 1 研究背景 第1 章绪论 h t m l ( h y p e r t e x tm a r k u pl a n g u a g e ,超文本链接标记语言) 作为i n t e r n e t 上 传统的描述语言,取得的巨大成功有目共睹。但随着网络应用的深入其局限性逐渐 显现,如难以扩展、缺乏交互性、缺乏语义性定义等等。人们需要一种能够结构化 地表示信息并支持网络跨平台应用和数据交换的标准网络语言,来满足各种应用和 通信的需要。可扩展标记语言( e x t e n s i b l em a r k u pl a n g u a g e ,简称x m l ) 正是在这样 的背景下诞生的。 1 9 9 8 年2 月,w o r l dw i d ew e bc o n s o r t i u m ( w 3 c ) 协会正式推出了x m l ,这是 一种可以用来创建标记语言的元语言,是s g m l ( s t a n d a r dg e n e r a l i z e dm a r k u p l a n g u a g e ) 的一个精简子集。它保留了s g m l 的一些特点,并克服了h t m l 的局限性。 相对于h t m l ,) ( m l 主要有如下优点: 具有良好的可扩展性。h t m l 的标记是预定义的,具有固定的名称及语义,不 能扩展;而x m l 的标记可由用户定义,可以被任意地扩展。x m l 允许开发各种不同 专业( 如音乐、化学、数学等) 的特定领域的标记语言。有了这些语言,这个领域 的实践者们可以自由地交换短文、数据和信息,而不必担心对方是否利用特殊的、 专用的软件来创建数据。目前已经开发出了一些特定领域的标记语言,如m a t h m l ( 用于数学领域的一种标记语言) 。 提供了一种灵活的数据描述方式,实现了结构、内容和显示相分离。文档类型 定义( d t d ) 或x m l 模式( x m ls c h e m a ) 描述了x m l 文档的结构,即元素间的嵌套关系。 而) ( m l 文档实例只描述数据,使得数据具有独立性。x m l 文档的显示具有多样性, x m l 文档的显示是由x m l 文档配合x s l ( e x t e n s i b l es t y l el a n g u a g e ) 来完成的, 因此对同个x m l 文档可以根据应用的需要以不同的风格显示。 具有自描述性。x m l 文档通常由文档模式描述文件和实例文件组成,前者用于 描述x m l 实例文件所能使用的标记、标记的结构、标记的含义等,而实例文件则使 用这些预定义的标记描述数据。因此x m l 中的标记一方面限定了元素的层次结构, 另一方面也说明了元素的含义。这使得x m l 具有机器可读性,具体应用可以按照 各种方式解析、过滤及重构x m l 文档。 简单易于处理。x m l 足够简单易于阅读和编写,又易于被应用程序处理,这使 锝它成为在不同的应用闻交换数据的理想格式。 支持高级搜索。因为可以知道文档内容的结构和含义,所以很容易在x m l 文档 中进行搜索。在i n t e r n e t 上如果网页是x m l 格式的,则不仅可以搜索数据,还可 以在搜索中加入与数据相关的上下文信息,这样搜索会更加精确、高效。 综上所述,x m l 的优点在于采用简单、柔性的标准化格式表达数据和在应用程 序间交换数据;x m l 的强大之处在于将用户界面和结构化数据相分离,允许不同来 源的数据无缝集成以及对同一数据的多种处理。因此,x m l 正迅速取代h t m l 成为网 上数据表示和数据转换的标准格式。然而x m l 对数据的处理能力却相当有限,如快 速查找、修改等。随着互联网上x m l 文档的急剧增加,如何对x m l 文档进行有效的 存储和管理成为一个急需解决的问题。对x m l 数据存储管理技术的深入研究将有力 促进企业的信息化和电子商务的发展,具有巨大的应用前景和经济效益。 1 2 研究现状及存在问题分析 1 2 i 国内外研究现状 随着网络上x m l 数据的广泛应用,人们开展了许多有关y j d l 文档存储的研究工 作。按数据存储系统的不同,目前主要有以下几种存储方法:基于文件系统的存储; x m l 原生数据库;x m l 使能数据库;混合数据库。下面简要介绍各种存储方法的优 缺点。 ( 一) 基于文件系统的存储 , 此种方法直接把x m l 文档作为磁盘文件进行存储,是最简单但缺点也最多的一 种存储方法。当要进行数据查询、更新等操作时,效率极为低下。所以要实现对x m l 数据查询、更新等数据管理功能,一般不考虑直接以文本文件的方式存储。 ( 二) x m l 原生数据库( n a t i v ex m ld a t a b a s e ,n x d b ) n x d b 是专门对x m l 格式的数据进行存取管理的数据库系统,兼有一般数据库的 特性,例如支持事务、并发控制、查询语言、安全机制、二次开发接口等。基本存 储单元是x m l 文档,这种数据库维持原有文档的数据结构和相关的元数据,而不关 心数据的底层存储格式,只能通过x m l 特有的相关技术对数据进行存储。由于内部 2 采用的是标准的瑚l 格式,存储时不需要进行格式的转换,因而可以充分发挥x m l 的优势,效率比较高。近年来出现了一些这样的数据库系统,如美国斯坦福大学丌 发的l o r e 系统l l l ,德国s o f t w a r ea 6 公司开发的第一个商用纯x m l 数据库系统 t a m i n o l 2 j ,d b x m lg r o u pl l c 公司的d b x m l ,美国e x e e l o n 公司的e x c e l o n 等等。 然而,x m l 原生数据库缺乏细粒度的数据处理能力,不适合于处理数据集中的x m l 文档。同时,这样的系统还不成熟,数据处理的效率也差强人意。 ( 三) x m l 使能数据库( x m le n a b l e dd a t a b a s e x e d b ) x e d b 是在已有的关系数据库系统或面向对象数据库系统的基础上扩展了x m l 支 持模块,完成x m l 数据和数据库之间的格式转换和传输。其基本数据存储单位是x m l 文档中的数据而不是x m l 文档。 l 、面向对象数据库 面向对象数据库利用x m l 给出的类型信息构造类层次结构,该方式的数据模 型更接近半结构化数据模型,并能更好地处理嵌套的集合和顺序,因此,其数据存 储和查询处理可以用来提高x m l 或半结构化数据处理的效率。一些针对x m l 的面 向对象数据库纷纷推出,如x m lr e p o s i t o r y l 3 1 是由o z o n e - d b ,o r g 开发的一种带有公 开源代码性质的x m l 数掘库,该数据库建立在o z o n e 面向对象数据库和 m o n s t e r d o m 技术的基础之上。但面向对象数据库在数据加载时对未知的数据类型 需要建立新的类对应,这样就影响了加载效率;当x m l 改变时,数据模式的变动 代价也很昂贵。虽然面向对象数据库的体系结构非常适合存储x m l 数据,但它本 身还不够成熟完善,限制了其应用范围。 2 、关系数据库 在关系数据库中,x m l 数据是以行和列构成的二维表的形式来存储的。当x m l 同关系数据库相结合时,一般需要将x m l 文档按元素层次结构拆分后依次存入数据 库中的相应字段。显然,这样一来,x m l 文档的整体性将受到破坏,除非有一个预 先设定的小程序对数据库中数据进行整合,否则x m l 数据将变成一团糟。 用关系数据库存放x m l 文档主要有以下优势。首先,同对象数据库和原始x m l 数据库相比,关系数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、 易于扩充、易于编制应用程序等优点。关系数据库已发展地非常成熟,能够提供对 大量数据进行高效存取的技术手段。其次,目前大量的数据都是存储在关系数据库 中。现在流行的数据库绝大多数是关系数据库,如s q ls e r v e r ,d b 2 ,o r a c l e 等都 是第三代的关系数据库。因此如果x m l 数据能够以关系的形式存放,就可以实现对 数据的统一管理,最大限度地利用关系数据库现有的存储管理、并发控制、恢复、 版本机制等技术来有效地管理数据。因此,x m l 在关系数据库中的存储成为研究的 热点。 在国外,与关系数据库相关的存储技术引起了从高校科研院所到商业数据库公 司,从政府部门到自由撰稿人的广泛关注 4 5 ,6 ,7 8 只1o ,1 。根据关系模式的生成方法, 目前主要有模型映射方法和结构映射方法。这部分内容在第三章有详细介绍。 相比之下,国内相关研究则起始于新世纪之初,一些大学及有实力的软件公司、 科研所都进行了相关的研究。如因科公司的因科) 【l l l 网关【1 2 】,成功实现了x m l 和传 统关系数据库的实时转化和交互,以及x m l 文件和v o i c e x m l 、w m l 等之间的实时自 动翻译等;中科院软件研究所的x m l 与关系数据库转换系统x t r a n s 1 3 1 也实现了x m l 文档到关系数据库数据,以及从关系数据库数据到文档的双向转换。另外也有很多 学者开展了相关的研究【,1 5 ,蚓。 许多主流的数据库厂商如微软、o r a c l e 、i b m 和s y b a s e 等也都在把x m l 支持结 合到其产品中,或者提供可在其数据库中使用的x m l 工具。如:s q ls e r v e r2 0 0 0 是 将x m l 文档存储在关系表中,通过f o rx m l 子句将关系数据库中的查询结果以x m l 文档的格式返回,通过使用o p e n x m l 子句将x m l 数据插入关系数据库。o r a c l e9 i 将x m l 文档存储为对象关系实例,其优点在于能够支持x m l 中复杂的数据类型。 o r a c l e9 i 还提供x m l 文档的另一种存储方式,就是以文档方式存储,其不足之处 在于不能够充分利用关系数据高效的存取技术。 ( 四) 混合数据库( h y b r i dx m ld a t a b a s e ,h ) 【d b ) + h x d b 主要是一种系统集成技术,其目的是综合x e d b 和n x d b 的优点,但其底层 并没有一种统一的数据库模型。o r a c l el o g 中引入的x m ld b 技术是h x d b 的典型代 表。 综上所述,x m l 文档数据属于半结构化数据,将它存储在原生x m l 数据库或 是面向对象数据库是很自然且易于实现的,但x m l 原生数据库和面向对象数据库技 术还不够成熟与完善,限制了其应用范围。基于关系数据库技术的成熟与其应用的 广泛性,把x m l 数据存储到关系数据库中是目前研究的热点。 4 1 2 2 现有研究存在的不足 通过对国内外大量研究项目及其技术文献的阅读分析,结合作者的研究实践发 现:x m l 在r d b 的存储技术目前仍处于研究阶段,主要存在以下不足: 问题一:国内外大多学者对于x m l 在关系数据库中存储技术的研究是基于早期 d t d 、x m l _ q l 等非x m l 技术标准开展研究的。随着x m ls c h e m a 、x o u e r y 国际标准地 位的确立以及其自身强大的功能,必将取代d t d 、x m l - q l 而得到普及应用。而目前 基于x m l s c h e m a 、x q u e r y 的研究仍处于初步研究阶段。因此基于上述标准开展高 起点的研究工作显然是非常必要的。 问题二:基于x m ls c h e m a 的映射方法仍然存在很多问题,在映射过程中的问 题主要集中在以下几个方面:如何处理重复出现的元素;如何处理嵌套元素、 递归元素;如何保留数据语义约束信息。由于数据语义约束信息在提取、映射、 转换等方面的困难,造成现有的x m l 与r d b 之间的静态模式映射算法大多只注重数 据结构的正确转换,忽略了数据语义约束的完整保留,而数据语义约束包含了数据 完整性、数据之间的依赖性等重要信息,在数据集成、数据有效性验证、数据语义 完整性等方面具有重要的意义。 1 3 论文的主要内容 本论文主要针对x m l 在关系数据库中存储的上述问题,开展了x m l 文档在关系 数据库中的存储技术的研究工作。p h i l i pb o h a n n o n 在文献【l l 】中提到的基于代价的 l e g o d b 存储系统中介绍了对x m ls c h e m a 进行改写的p - s c h e m a ( p h y s i c a lx m l s c h e m a ) 模型,通过分析发现p - s c h e m a 有对x m l 数据提取不够明确、不够完善的 缺点。因此本论文对p - s c h e m a 进行改进和扩充,提出了e - s c h e m a ( e x t e n d e dx m l s c h e m a ) 模型。 e - s c h e m a 是x m ls c h e m a 简化后的x m l 模式文件,它比较好地处理了x s d 中的 多值元素、嵌套元素、选择元素,而且一定程度上保留了数据约束信息,对x m l 的 提取更加明确、更加完善。由于e - s c h e m a 结构简单,只包含复杂元素和简单元素, 也使x m l 文档到关系数据库的存储更加容易、更加高效。最后,根据e - s c h e m a 模 型做了相关的模拟实验,从实验上验证了e - s c h e m a 模型的可行性和有效性。 本论文的主要研究内容是: 1 、对x m ls c h e m a 进行结构和语法分析,重新对提取信息分类,从更深的层次实现 对元素信息的提取,使信息提取更加明确。 2 、实现在关系数据模型中保留x m l 数据的约束信息,如关键字、唯一性、默认值 等,使信息的提取更加完善。 3 、实现了e - s c h e m a 模型到关系模式的映射和x m l 文档到关系数据库的映射,从实 验上论证了e - s c h e m a 模型的可行性和有效性。 但由于时间关系,本论文的研究还存在一些不足之处: 1 、x m l 文档到关系数据库的映射最重要的是x m l 文档的可恢复性。论文只做了x m l 文档到关系数据库的映射,没有对关系数据库到x m l 的映射进行研究。没有验证映 射后x m l 文档的可恢复性。 2 、本文的模式映射方法是基于固定结构的x m ls c h e m a 展开的,没有考虑瑚l s c h e m a 变动的问题。当x m ls c h e m a 变动时,对应的关系模式也随之变化,如何 调整关系模式以适应变动后的x m ls c h e m a 及如何保证存储在关系数据库中的数据 的前后一致将成为下一步工作中要解决的重要问题。 4 、实验中的部分算法有待改进,提高其执行效率。 论文围绕为什么做、做什么、怎么做、做得怎样四方面展开论述。第1 章介绍 为什么做,第2 、3 章分析应该做什么,第4 、5 章介绍怎么做,第6 章总结做得怎 样。论文主要章节安排如下: 第1 章绪论。介绍了x m l 技术的优点,通过对目前国内外各种x l l 存储技术 的优缺点进行分析,提出了本文的研究内容:基于x s d 模式的瑚l 文档在关系数据 库中存储技术的研究。 第2 章x m l 技术。简要介绍论文所涉及到x 札技术。 第3 章x m l 在关系数据库中的存储技术。总结了目前x m l 在关系数据库中的多 种存储技术,同时详细介绍了p h i l i pb o h a n n o n 提出的p - s c h e m a 模型,分析优缺 点,确定本文的研究重点。 第4 章改进的e - s c h e m a 模型。针对p - s c h e m a 模型存在的缺点进行改进和扩 展,从理论上介绍了e - s c h e m a 模型的主要思想。 第5 章实验验证。从实践上对e - s c h e m a 模型的主要思想进行了验证。介绍了 6 模拟实验中的硬件软件环境、主要技术以及实验主要流程,对实验结果进行了分析。 第6 章总结。总结论文的主要研究内容和存在的不足之处。 1 4 本章小结 本章主要说明论文的研究背景、研究现状和研究内容。首先介绍了x m l 的特点, 指出x m l 文档的存储问题急需解决;接着对国内外主要x m l 文档存储技术的优缺点 进行分析,提出了x m l 在关系数据库中存储技术是研究热点。通过对该领域国内外 的研究状况进行分析,指出目前存在的主要问题,从而定位本论文的研究重点,最后 说明论文的研究内容和章节安排。 2 1x m l 的语法 第2 章x m l 技术 煳l 的基本语法十分简单易学,和h t m l 很相似,但h t m l 只允许使用固定的标 记,而x m l 允许创建新标记,来更准确地描述数据。从逻辑上讲,瑚l 文档由声明、 元素、属性、注释、字符、处理指令等构成。一个x 札文档首先应当是“格式良 好的”,也就是说按照w 3 c 制定的x m l 标准语法或语义是正确的,格式不是良好的 文档不能被接收处理,浏览器无法正常显示。格式良好的捌l 文档简化了解析器 的内部代码,加快了文档解析速度。下面结合图2 1 介绍x m l 的语法规则。这个 例子中出现的逻辑要素有:第1 行是x m l 声明;第2 行是注释;第3 行是处理指令; 第4 2 1 行是文档中的各个元素。 1 2 s 3 ( d t w a - 5h p r e p t 订 4 i 5 l 6 t p r e d 7 , l a n d i z 8 p z o j e c t | a p a 9 ,( 。h o n e 1 2 z - 4 盱7 8 9 0 1 0 , f 1 a n d i 嘲a n o n u l i c o r n 1 1 s e r s o n 1 2 , 1 3 , 2 0 0 3 - - o i - - 0 1 1 4 , 1 2 2 ,1 1 1 5 , l e x p e n j r i t e s 1 6 1 7 1 2 0 0 3 - 0 i 0 2 1 8 , 1 2 2 1 2 19,playedp e n n ya z c a d e ( d e s c z i p t i o n 2 0 , 2 1 = 图2 - 1 娜l 实例文件e x p r e p o r t x m l l 、】( m l 声明 图2 1 第l 行是完整的潮l 声明,一个x m l 文档最好以一个瑚l 声明作为开始。 x m l 标记说明它是一个删l 文档,v e r s i o n 属性表明x m l 的版本号为1 0 ,e n c o d i n g 3 属性表明编码标准,s t a n d a l o n e 取y e s 表明该文件是独立的,即没有指定外部的实 体,也没有使用外部的模式;取n o 表示引用了其它外部) ( 1 l l 文件。 2 、元素 元素是x y l 文档的基本单元。从语法上讲,一个元素包含一个起始标记、一个 结束标记以及标记之问的数据内容。其形式是: 数据内容 对于标记有以下语法规定: ( 1 ) 标记必不可少。任何个格式良好的) 【m l 文档中至少要有一个元素。但一 个x m l 文档中有且仅有一个根元素,其他所有的元素都必须包含在根元素之内。图 2 1 中e x p e n s e r e p o r t 是文档的根元素。 ( 2 ) 大小写应一致:x m l 对字母的大小写是敏感的, 和 是完 全不同的两个标记,所以结束标记在匹配时一定要注意大小写一致。 ( 3 ) 起始标记和结束标记应当匹配,结束标记是必不可少的。如 和 相匹配。当一对标记之日j 没有任何文本内容时,可以不写结束标记。如 可以写成 。这样的元素称为”空元素”。 ( 4 ) 元素应当正确嵌套:子元素应当完全包括在父辈元素中。下面的例子就是 嵌套错误 ,正确的嵌套方式如下: 。 ( 5 ) 标记命名要合法。标记名应该以字母或下划线( 一) 或冒号( :) 开头,后面跟 字母、数字、句号、冒号、下划线或连字符。”,但是中间不能有空格,而且任何 标记名不能以”x m l “( 或者”x m l ”大小写的任何组合,如”x m l ”、”x m l 4 、”x m l “等等) 起始。 3 、属性 属性是依附元素存在的。属性的形式为:属性名= 属性值。属性名和元素名有 相同的构造规则,属性值必须包括在引号中。如:c u r r e n c y = ”u s i ) ”。一个元素中可 以有任意数目的属性,但是不允许重复。 4 、c d a t a 段 在标记c d a t a 下,所有的标记、实体引用都被忽略,而被x m l 处理程序一视同 仁地当作字符数据看待。c d a t a 的形式如下: 。c d a t a 的 文本内容中不能出现字符串” 。,另外c d a t a 不能嵌套。 5 、注释 9 有些时候,人们希望在x m l 文档中加入一些用作解释的字符数据,并且希望x m l 处理器不对它们进行任何处理,这种类型的文本称作注释文本。在x m l 中,注释的 方法与h t m l 完全相同,用” ”将注释文本引起来。 6 、处理指令 处理指令是用来给处理x m l 文档的应用程序提供信息的,煳l 分析器把这些信 息原封不动地传给应用程序,由应用程序来解释这个指令,遵照它所提供的信息进 行处理。处理指令应该遵循下面的格式: 2 2 x m l 的模式 l 文档是一种结构化的标记文档。创建) ( 1 l l 文档之前,首先要确立其元素和 结构,再根据结构的定义,填入实际的内容,形成一个x m l 文档。x m l 结构文件有 两种定义方式,即文档类型定义d t d ( d o c u m e n tt y p ed e f i n i t i o n ) 和模式定义 x s d ( x m ls c h e m a ) 。 ( 一) 文档类型定义d t d d t d 的产生源于s g m l ,是最早也最成熟的x m l 文档模式语言。d t d 描述了一 个x m l 文档有哪些元素和属性组成,它们在文档的什么位置出现及出现的次数、 元素的嵌套关系等。但d t d 存在如下的缺陷: 1 、d t d 使用一种完全不同于) 【m l 的特殊规范来定义x m l 中的各种符号,不仅编写困 难,还需要专门的解析器,而不能和x m l 的解析器通用。 2 、d t d 的数据类型有限,不能够表现数据库中复杂的数据。 3 、d t d 不支持名域,易与元素名发生冲突,造成一个x m l 文档只能与一个d t d 文档 相对应。如果想引用多个d t d 文档,必须通过参数实体进行复杂的转换工作,而且 还很容易出错,这一缺陷对于数据库表之问复杂的关系而言是不可容忍的。 ( 二) 模式定义x s d 在x s d 推出之前已经开发了四种模式语言,分别是x d r ( 删ld a t ar e d u c e d ,x m l 数据简化) 、d c d ( d o c u m e n tc o n t e n td e s c r i p t i o n ,文档内容描述) 、s o x ( s i m p l e o u t l i n ex m l ,简单x m l 摘要) 和d d m l ( d o c u m e n td e f i n i t i o nm a r k u pl a n g u a g e ,文 档定义标记语言) 。x s d 是w 3 c 于2 0 0 1 年5 月正式发布的标准,x s d 一确定下来, 立刻成为全球公认的首选x m l 环境下的建模工具。x s d 的特点在于: l o l 、x s d 是用x m l 语法编写的,使得软件工具可以通用,无需两种装备,同时在程序 编写上将更为方便直接。例如可通过d o m 接口访问元素和属性。 2 、x s d 数据类型更加丰富,可以将元素和属性定义为i n t 、d a t e 、b o o l e a n 等简 单或复杂的数据类型,此外,还能够自定义数据类型。而d t d 除了只能提供很粗糙 的p c d a t a 数据,不能够提供对复杂数据类型的验证,不提供自定义数据类型。 3 、x s d 可以随时更新它的内容模型,而d t d 的内容模型是封闭的。 4 、x s d 利用名域将特殊元素和s c h e m a 文档链接,使一个x m l 文件可对应多个s c h e m a 文档,具有良好的可扩展性,可以定义复杂的数据关系。 图2 1 所示x m l 文档对应的模式文件为e x p r e p o r t x s d ,如图2 2 所示。下面 结合图2 2 说明x s d 文件的元素构成。 e x p e n s e r e p a r ti st h er o o te l e m e n t ( x s :s e q u e n c e 图2 - 2 ) 0 几模式文件e x p r e p o r t x s d 1 、s c h e m a s c h e m a 元素是) ( m ls c h e m a 中第一个出现的元素,用于声明该x m l 文档是一个 s c h e m a 文档。s c h e m a 元素具有两个属性,n a m e 指定该s c h e m a 的名称,而x m l n s 则指 定该s c h e m a 包含的命名空间。 2 、数据类型 x m ls c h e m a 支持两种数据类型:简单数据类型( s i m p l e t y p e ) 和复杂数据类型 f=玉m如艮出“吼幻n垃m坫坩培垮缸 ( c o m p l e x t y p e ) 。c o m p l e x t y p e 类型的元素可以包括子元素和属性,而s i m p l e t y p e 类型的元素既不能包含予元素,也不能包含属性。x m ls c h e m a 不但内置了3 7 种简 单数据类型,同时也可以对s i m p l e t y p e 和c o m p l e x t y p e 这两种类型傲进一步的扩 充。如可以声明s i m p l e c o n t e n t ,e m p t y c o n t e n t ,m i x c o n t e n t 和a n y c o n t e n t 等属 性对元素的内容和结构所做的迸一步的描述。 3 、e l e m e n t 在x m ls c h e m a 中用( e l e m e n t ) 来定义元素。在( e l e m e n t ) 中包括n a l l e 、t y p e 、 m i n o c c u r s 、m a x o c c u r s 等属性。n a m e 记录元素名;t y p e 表示元素的类型,既可以 是简单类型也可以是自定义的复杂类型;m i n o c c u r s 和m a x o c c u r s 表示元素在x m l 实例文件中出现的最小次数和最大次数,默认值均为i 。 4 、a t t r i b u t e a t t r i b u t e 元素用于定义在s c h e m a 文档中出现的属性。在 相当于d t d 中的“l ”。在 ( c h o i c e 中出现的元素或元素维 只能有一个出现在对应的x m l 实例文件中。 7 、 s e q u e n c e 在x m ls c h e m a 中将 包括的一系列元素成为一个系列, 系列中的每个成员在对应实例中出现的顺序与其在系列定义中的顺序相同。 8 、a n n o t a t i o n a n n o t a t i o n 元素包括d o c u m e n t a t i o n 和a p p i n f o 两个子元素,分别对基本 s c h e m a 信息和版权信息及工具、样式单和其它应用程序的信息进行描述。 2 3 x m l 的显示 x m l 的一个最重要的特征是把内容和显示格式分开。这样做带来很大的好处, 可以让不同的用户按照各自希望的格式显示同一x m l 文档的内容,这也就意味着x m l 文档本身并没有关于格式方面的信息。为x m l 文档提供格式信息的是样式表。样式 表可以控制文件内容在显示时的版面风格,如页面的边距、各式标题及文字的字体、 颜色、对齐方式等。对同一份x m l 文档使用不同的样式表就可以得到不同的输出效 果,这特别适合于将文档表示在不同的场合,如显示、打印、出版等。适用于x m l 文档的样式表语言有层叠样式表c s s ( c a s c a d i n gs t y l es h e e t sl e v e l ) 和可扩展样 式表语言x s l ( e x t e n s i b l es t y l e s h e e tl a n g u a g e ) 。 ( 一) 层叠样式表c s s c s s 是一种比较简单的样式表语言,既可以用于h t m l 文档,也可以用于x m l 文 档。c s s 用简单的语法描述元素的显示格式,决定了页面的视觉外观,但是不会改 变源文档的结构。而x s l 是专为x m l 设计的样式表语言,它使用x m l 的语法,但综 合了d s s s l ( d o c u m e n ts t y l ea n ds e m a n t i c ss p e c i f i c a t i o nl a n g u a g e ,s g m l 文 件的样式表) 和c s s 的特点。x s l 的优势在它可以用于转换,当然x s l 也可以把x m l 文档转换为h t m l 格式。而且同一个样式表可以用于多个具有相似树结构的文档。 ( 二) 可扩展样式表语言x s l 严格说来x s l 包含3 部分:x s l t 、x p a t h 和x s l 格式化对象。x s l t 是一种 用来将瑚l 文档转换成其他类型文档或其它x m l 文档的语言。x p a t h 是一种对 x m l 文档进行寻址的语言。格式化对象是将一个x s l 转换的结果变成适于读者或听 众使用的输出格式的过程。 x s l t 是x s l 标准中最重要的部分,它用于将一个x m l 文档转换成另一个 x m l 文档或另一种类型的文档,也就是将一个x m l 文档转换成浏览器所能识别的一 种格式。通常,x s l t 将每个糊l 元素都转换成一个h t m l 元素。x s l t 还可以向输出 文件中增加全新的元素,或去掉一些元素。它可以重新安排这些元素并对元素进行 分类,测试并确定显示哪些元素等等。 x s l t 内部使用扩展的x p a t h 语言来定位x m l 文档的某个部分。x p a t h 是为x m l 定义的查询语言,它提供在文档中选择结点子集的简单语法,识别x m l 文档的某个 部分,它还提供了操纵字符串、数字和布尔值的函数。x p a t h 利用位置路径来为x m l 文档的不同部分进行寻址,位蜀路径类似于操作系统的目录,提供了指令来定位到 文档中任何地方。位置路径分为绝对位置和相对位置,绝对位置指向文档结构中某 个特定的位置,相对位置则指向文档中某个依赖起始位置而定的位置。例如,x p a t b 表达式“b i b b o o k y e a r ”表示从文档根开始,选择所有b i b 子元素,然后 选择b i b 元素的所有b o o k 子元素,最后选择b o o k 子元素的所有y e a r 属性。 处理x s l 样式表的是x s l 样式表处理器,样式表处理器接受一个x m l 文档或数 据,以及x s l 样式表,输出特定样式的显示,其显示格式根据x s l 样式表确定。这 个处理过程分两步进行,首先,从x m l 源树构建一棵结果树,这一步称为树转换; 然后,翻译结果树产生所需的显示。x s l 的工作

温馨提示

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

评论

0/150

提交评论