




已阅读5页,还剩55页未读, 继续免费阅读
(计算机软件与理论专业论文)xml查询语言xquery及其扩展研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 x m l 查询需要从万维网上真实和虚拟的文档中析取数据,提供网络世界与数 据库世界之间的交互,并使x m l 文档集合能够像数据库一样被访问。x m l 查询 语言x q u e r y 是导航语言x p a t h 的扩展,它是一种语法简单灵活且表现力强大的功 能性语言。x q u e r y 与x m l 数据结构有内在的联系,可以方便地编写业务逻辑, 并且本质上就可以操作x m l 数据。 本文的主要目的是对x q u e r y 规范进行深入研究并对其功能进行扩展,以实现 基于文档集合的x q u e r y 查询。论文在深入讨论x q u e r y 规范,充分研究x q u e r y 技术现状的基础上,探讨了对x q u e r y 进行扩展的可行性,提出了种扩展思路。 x q u e r y 语言解释器是语言实现的核心部分,本文讨论了所用到的解析器生成工具 j a v a c c 和几个关键问题,并给出x q u e r y 语言解释器的系统框架。在文章的最后 对x q u e r y 功能扩展做了原型实现,同时进行了应用支持分析。 关键字:x l d l 查询语言x q u e r y 扩展文档集合 垒堕! 型一v _ _ _ _ h _ _ _ _ _ _ _ _ - - _ 1 一 a b s t r a c t x m l q u e r y i n gn e e d se x t r a c t i n gd a t a sf r o ma c t u a la n d v i r t u a ld o c u m e n t so nt h e w o r l dw i d ew e b ,a n ds u p p l i e st h ei n t e r a c t i o nb e t w e e nb e t w e e nt h ew e b w o r l da n dt h e d a t a b a s ew o r l d u l t i m a t e l y , c o l l e c t i o n so fx m l f i l e sw i l lb ea c c e s s e dl i k ed a t a b a s e s x m l q u e r yl a n g u a g ex q n e r y i st h ee x t e n s i o no fn a v i g a t i o nl a n g u a g ex p a t h ,a n d i ti sa f u n c t i o n a ll a n g u a g ew h i c hh a ss i m p l es y n t a xa n ds t r o n ge x p r e s s i v ef o r c e x o u e r yh a s t h ei n t e r n a l r e l a t i o n s h i p w i t hx m ld a t as t r u c t u r e ,s ow ec a nw r i t eb u s i n e s sl o g i c e x p e d i e n t l yb y i t i tc a l l m a n i p u l a t ex m l d a t ae s s e n t i a l l yt o o t h e p u r p o s e o ft h i sp a p e ri st og oi n t ot h es p e c i f i c a t i o n so fx q u e r ya n de x t e n dt h e f u n c t i o no fx q u e r yf o rq u e r y i n gx m ld o c u m e n tc o l l e c t i o n o nt h eb a s i so fd e e p c o m p r e h e n s i o n o f x o u e r ys p e c i f i c a t i o n sa n d s u f f i c i e n tr e s e a r c ho nt h ep r e s e n ts t a t u so f x q u e r yt e c h n o l o g y , w e d i s c u s st h ef e a s i b i l i t yo fe x t e n d i n gx o u e r y , a n d b r i n gf o r w a r d a ne x t e n d i n gt h o u g h t x q u e r yl a n g u a g ei n t e r p r e t e ri st h eh a r dc o r eo ft h i sl a n g u a g e s i m p l e m e n t a t i o n 。t h i sp a p e rd i s c u s s e st h eu s e dt o o l sa n ds e v e r a ls i g n i f i c a n ti s s u e s ,a n d p r e s e n t st h es y s t e mf r a m e w o r k o f x o u e r yl a n g u a g ei n t e r p r e t e r i nt h ee n d o ft h i sp a p e r , w e p r e s e n t a p r o t o t y p e t oe x t e n d x q u e r yf u n c t i o n s ,a n da n a l y s e i t sa p p l i c a t i o n s u p p o r t k e y w o r d :x m lq u e r yl a n g u a g ex q u e r y e x t e n s i o nd o c u m e n tc o l l e c t i o n 声明 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名狐通j 邀 日期:2 q q 笙! 旦2 l 旦 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文 在解密后遵守此规定) 本学位论文属于保密在年解密后适用本授权书。 本人签名 导师签名: 必墅:堡刍 乏兰:塑 日期:2 q 煎生! 旦2 i 目 日期:2 凶5 生! 旦2 1 旦 一一兰二兰堕丝! _ _ _ _ _ - _ 。- 。_ _ _ _ 。_ _ - 。- - 。_ h _ _ 。_ 。1 1 1 一 第一章绪 论 1 1引言 i n t e m e t 提供了全球范围的网络互连与通信功能,w e b 技术的发展更是一日千 里,其丰富的信息资源给人们的学习和生活带来了极大的便利。特别是应运而生 的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 ,超文本置标语言) ,以其简单易学、灵活 通用的特性,使人们发布、检索、交流信息都变得非常简单,从而使w e b 成了最 大的环球信息资源库。然而,电子商务、电子出版、远程教育等基于w e b 的新兴 领域的全面兴起使得传统的w e b 资源更加复杂化、多样化,数据量的日趋庞大对 网络的传输能力也提出更高的要求。同时,人们对w e b 服务功能的需求也达到更 高的标准,比如:用户需要对w e b 进行智能化的语义搜索和对数据按照不同的需 求进行多样化显示等个性化服务,公司和企业要为客户创建和分发大量有价值的 文档信息,以降低生产成本,以及对不同平台、不同格式的数据源进行数据集成 和数据转化等等,这些需求越来越广泛和迫切。 传统的h t m l 由于自身特点的限制,不能有效地解决上述问题:作为种简 单的表示性语言,它只能显示内容而无法表达数据内容。而这一点恰恰是电子商 务、智能搜索引擎所必需的。另外,h t m l 语言不能描述矢量图形、数学公式、 化学符号等特殊对象,在数据显示方面的描述能力也不尽如人意。最重要的是: h t 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 ,标准通用置标语言) 的一个实例化的子集,可扩展性差,用户根本不能自定义有意义的置标供他人使 用。这一切都成为w e b 技术进一步发展的障碍。 s g m l 是一种通用的文档结构描述置标语言,为语法置标提供了异常强大的 工具,同时具有极好的扩展性,因此在数据分类和索引中非常有用。但s g m l 复 杂度太高,不适合网络的日常应用,加上开发成本高、不被主流浏览器所支持等 原因,使得s g m l 在w e b 上的推广受到阻碍。在这种情况下,开发一种兼具s g m l 的强大功能、可扩展性以及h t m l 的简单性的语言势在必行。由此诞生了x m l 语言。 , x m l ( e x t e n s i b l e m a r k u pl a n g u a g e ,可扩展标记语言) 同样是s g m l 的一个 简化子集,它将s g m l 的丰富功能与h t m l 的易用性结合到w e b 应用中,以种 开放的自我描述方式定义了数据结构,在描述数据内容的同时能突出对结构的描 述,从而体现出数据之间的关系。这样所组织的数据对于应用程序和用户都是友 !圣坚兰查塑亘童! 塑兰! 翌墨茎芏星堑壅 好的、可操作的。 为了保证x m l 文档能够被再次使用,它们应该保存在某种存储介质上通 常是文件系统。将信息保存起来留做以后使用称为持续性,而且它也是指在一个 程序结束。、- - 。z - - ,。_ 。;。u , ”。然而我们有一些需求,不是文件系统所 能满足的,比如想处理巨大的文档,并想检查同其他部分分离的部分文档;希望 允许多个人在同一时刻处理同一文档;还想使用最合适的处理数据的工具来维护 文档的各个部分;想记录一个文档不同版本的轨迹:想控制一个文档的某一部分 只允许特定用户查看或者修改;想解决数据的集中和重复的问题等等。 这些需求所引发的大小、并发性、合适的处理工具、版本、安全等问题,可 以通过x m l 的数据库存储而完美解决。是否使用数据库以及使用何种数据库技 术,取决于用户使用x m l 的方式和侧重点。 例如,你有个电子商务的应用,将x m l 用作数据交换,你的数据有非常规则 的结构,并且x m l 文档所用的某些东西如实体和编码对你来说并不重要总 之,你感兴趣的是数据,而不是它在x m l 内如何存储。在这种情况下,你大概需 要一个关系型数据库以及在x m l 和数据库之间转换数据的软件。如果你的应用程 序是面向对象的,你甚至还需要一个在数据库或x m l 中存取这些对象的系统。 另一方面,假如你要组织一些x m l 文档来建立一个网站。你不但要管理这个 网站,还要提供站点内容搜索。你的文档看起来结构比较松散,其中实体的使用 对你来说可能更重要,因为它们是文档结构的重要部分。这种情况下,你也许需 要一个本源x m l 数据库( n a t i v ex m l d a t a b a s e ,n x d ) 或内容管理系统( c o n t e n t m a n a g e m e n ts y s t e m ) 。这使你可以保持文档的物理结构,支持文件级的事务处理, 以及使用x m lq u e r y ( x q u e r y ) 语言进行查询。 x m l 可能会存储于文件系统中,也有可能存储于关系数据库、面向对象数据 库或者本源x m l 数据库中,但作为交换和展现信息的重要格式,x m l 需要一种 统一的方法来搜索、提取、操作或以别的方式来处理信息,x q u e r y 正是这样一种 查询语言。 x q u e r y 数据查询为x m l 定义了一个数据模型,包括节点类型、数据类型、 集合、还有映射;x m l 查询代数定义了一套在此数据模型上的操作符;x q u e r y 数据查询语言是描述性、封闭性、可组合的语言;x q u e r y 为查询语言定义了一个 人类可读的语法。 1 2 项目背景及研究内容 本论文来源于“政府各部门之间的信息共享系统”项目,它是运行在罗湖区 城市综合管理信息公共服务平台系统之上的一个应用系统,其目标是建立一个开 第一章绪 论 放、可扩展、可维护的、基于一站式服务架构的应用系统,实现政府各部门间的 信息交换和资源共享,从而解决政务信息化发展中的信息孤岛问题,使这些大量 的不同位置、不同格式的数据能够共享和相互访问,进而集成相关的业务数据, 为企业、公众和内部政务系统提供统一和一致的服务。 为了实现数据信息共享,系统采用x m l 格式作为数据交换、数据存储和数据 展现的统一标准,而x q u e r y 正是最有前途成为首选x m l 查询语言的技术规范。 当前,无论是专门为存储x m l 量身定做的本源x m l 数据库,还是在数据库存储 上占有主导地位的关系数据库管理系统,都提供了或者将提供对x q u e r y 的支持。 在对x m l 的存储中,文档集合是一个很重要的概念,而当前的x q u e r y 并不 直接支持对文档集合的查询,这不利于高效的利用x q u e r y 的优势对大量的x m l 文档进行查询。本论文力图在详细研究x o u e r y 的技术细节及其发展现状的基础 上,提出一种扩展方案,以实现x q u e r y 对文档集合的操作,这对利用x q u e r y 进 行全文检索以及本源x m l 数据库的实现有一定的意义。 1 3 论文章节安排 全文共分五章: 第一章即本章,包括引言、项目背景及研究内容和论文章节安排。 第二章介绍x m l 及其相关技术,对x m l 文档的存储和x m l 数据库做了论 述;以几款数据库为例,对本源x m l 数据库做了重点介绍。 第三章以x m l 查询语言x q u e r y 为对象,对这种智能、易用且功能强大的x m l 查询语言做了详尽说明;并介绍了几个成熟的x q u e r y 实现。 第四章研究了对x q u e r y 进行扩展的必要性和可行性,对x q u e r y 语言解释器 做了概要设计,最后模拟一个用x q u e r y 语言对本地x m l 文档集合进行查询的应 用,并给出原型实现。 第五章对论文工作做了总结,比较了x q u e r y 扩展前后对典型应用的支持情 况,并对后续工作做了说明。 一4型兰查塑堕直苎q ! ! 坚墨茎芏壁堡窒 一 第二章x m l 与数据库 x m l 技术随着互联网技术的成长而迅速发展,特别是随着近几年w e b s e r v i c e 技术的蓬勃发展,x m l 越来越多地活跃在数据交换和存储领域。x m l 数据量成 指数级增长,需要更有效的数据管理方式和更快、更精确的查询能力。在传统数 据库厂商纷纷宣布支持x m l 的同时,一种新的数据库技术,n a t i v e x m l d a t a b a s e ( 本源x m l 数据库,n x d ) 也已崭露头角,打破了传统的关系数据库管理系统 ( r e l a t i o n a l d a t a b a s e m a n a g e m e n t s y s t e m ,r d b m s ) 一统天下的局面,为数据库 技术的研究提供了一次良好的发展契机。 本章将探讨x m l 技术及x m l 数据库。 2 1 x m l 及相关技术 x m l ( 可扩展标记语言,e x t e n s i b l em a r k u pl a n g u a g e ) 是一种可由用户自行 创建标记的置标语言。它由w 3 c ( w o r l dw i d ew e bc o n s o r t i u m ,万维网协会) 创 建,用以克服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 ) 的局限。和 h t m l 一样,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 ) 。 x m l 是为w e b 设计的。作为一种标准化语言,x m l 有一套相关的规范体系 和技术,保证其通用型和可操作性。 x m l 是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部 件加以标识。x m l 是置标语言,就是一种用来给文本添加标记的语言。在h t m l 里每个标志都是有确切含义,而x m l 并非像h t m l 那样,提供了一组事先已经 定义好了的标签,而是提供了一个标准,利用这个标准,你可以根据实际需要定 义自己的新的景标语言,并为你的这个置标语言规定它特有的一套标签。准确的 说,x m l 是一种源置标语言,它允许你根据它所提供的规则,制定各种各样的置 标语言。 2 1 1x m l 的优点及作用 使用x m l 可以自由地制定自己的置标语言,现在许多行业、机构都利用x m l 定义了自己的置标语言。比较早且比较典型的是c m l ( 化学置标语言,c h e m i s t r y 塑三兰! ! ! 些兰鏊塑壁 一! m a r k u dl a n g u a g e ) 和m a t h m l ( 数学置标语言,m a t h e m a t i c a l m a r k u pl a n g u a g e ) 。 我国电子政务系统建设方兴未艾,也有统一的政务专用x m l 语言,即c e g x m l ( c h i n ae g o v e r n m e n tx m l ) 1 2 】。 s m i l ( 多媒体同步整合语言,s y n c h r o n i z e d m u l t i m e d i ai n t e g r a t i o nl a n g u a g e , 音t s m i l e ) 也是一项x m l 的应用。广受欢迎的r e a l p l a y e rg 2 ,就是采用s m i l 来提供影( r e a lv i d e o ) 、音( r e a l a u d i o ) 、图档( r e a lp i x ) 、文字( r e a l t e x t ) 串 连的功能,让设计者可以自由控制多媒体出现时间和先后顺序。和m a t h m l 一样, s m i l 也是w 3 c 正式推荐的网络标准【3 1 。 2 1 1 1x m l 的优点和作用 相对于其他数据格式,x m l 具有以下优点: 首先,x m l 允许各种不同的专业( 如音乐、化学、数学等) 开发与自己的特 定领域相关的标记语言。这就使该领域中的人们可以交换笔记、数据和信息,而 不用担心接收端的人是否有特定的软件来创建数据。 其次,x m l 具有较好的保值性。过去的大多数计算机数据都丢失了,不是因 为自然损害或是备份介质的磨损,而只是因为没有人来写出如何读取这些数据介 质和格式的文档。以不常用的格式保存的二进制数据,数据也许会永远地消失。 x m l 在基本水平上使用的是非常简单的数据格式。可以用1 0 0 的纯a s c i i 文本 来书写,也可以用几种其他定义好的格式来书写。a s c i i 文本是几乎不会“磨损” 的。 再次,由于x m l 是非专有的并且易于阅读和编写,就使它成为在不同应用间 交换数据的理想格式。x m l 使用的是非专有的格式,不受版权、专利、商业秘密 或是其他种类知识产权的限制。x m l 功能非常强大,同时对于人类或是计算机程 序来说,都容易阅读和编写,因而成为交换语言的首选。 此外,相对于h t m l ,x m l 具有先天的优越性。为了给浏览器增加一些特殊 的显示效果,h t m l 加入了一些特殊的标记。日益增多的标签不但使h t m l 越来 越庞大,浏览器的开发越来越复杂,还降低了不同浏览器之间的兼容性。尽管 h t m l 的标签越来越多,其显示力却还远远不够。如果你希望非常精确地表现一 些自己的数据,可能需要一些现在的h t m l 中尚不存在的标签。现在h t m l 内部 结构的条理性越来越差,你写的h t m l 文件,甚至是那些专门的所见即所得工具 自动生成的h t m l 文件,可能在语法上会错误百出,但浏览器还照样能读它。而 x m l 在一开始就强制文档结构和文档规则,在处理上达到规范化。 同样,x m l 在几个关键领域对w e b 起n t 改进的作用1 4 】: 1 x m l 简化了数据交换。因为不同组织( 乃至同一组织的不同部门) 很少 就单一工具集形成标准,所以要使应用程序相互交流需要做大量工作。使用x m l , x m l 查询语言x q u e r y 及其扩展研究 每个实体可以创建单一的实用程序,该实用程序将该实体的内部数据格式转换成 x m l ,反之亦然。而一般的情况是:这些实体的软件供应商已经提供了在它们的 数据库记录( 或l d a p 目录,或采购订单等) 与x m l 之间进行相互转换的工具。 2 x m l 支持智能代码。因为可以使x m l 文档结构化以标识每个非常重要的 信息片段( 以及这些片段之间的关系) ,所以可以编写无需人工干预就能处理这些 x m l 文档的代码。软件供应商花费了大量时间和金钱来构建x m l 开发工具这一 事实意味着编写那样的代码是相对简单的过程。 3 x m l 支持智能搜索。尽管搜索引擎这些年在稳步改进,但从搜索中得到 错误的结果仍很常见。如果您正在搜索包含名叫“c h i p ”的人的h t m l 页面,您 可能还会找到有关功克力片、计算机芯片、木片以及许多其它无用匹配的页面。 搜索x m l 文档查找包含文本c h i p 的 元素会给您一个好得多的结果集。 2 1 1 2 几个需要说明的概念 x m l 的创造者们决定从一开始就强制文档结构,从而避免如h t m l 文档中松 散结构所造成的混乱,有一点很重要:x m l 规范需要解析器( 解析器是尝试读取 文档并解释其内容的一段代码【5 】) 拒绝任何没有遵守基本规则的x m l 文档。 1 无效、有效( v a l i d ) 以及格式良好( w e l l f o r m e d ) 的文档 有三种x m l 文档: 无效文档没有遵守x m l 规范定义的语法规则。如果开发人员已经在d t d 或 模式中定义了文档能够包含什么,而某个文档没有遵守那些规则,那么这个文档 也是无效的。 有效文档既遵守x m l 语法规则也遵守在其d t d 或模式中定义的规则。 格式蘸好的文档遵守x m l 语法,但没有d t d 或模式。 2 命名空间 x m l 命名空间是解决多义性和名字冲突问题的解决方案。x m l 的能力来自 它的灵活性,使我们可以定义我们自己的标记来描述我们的数据。本节开始的表 示个人姓名和地址的示例x m l 文档中,含有表示个人尊称的 元素,这是对 元素名称非常合理的选择。如果您经营一家网上书店,您或许会创建一个表示书 名的 元素。如果您经营一家网上抵押放款公司,您或许会创建表示份财产 名称的 :元素。所有这些都是合理的选择,但它们都用相同的名称创建元素。 如何分辨某个特定的 元素指的是人、书籍还是份财产呢? 可以使用命名空 间。 要使用命名空阃,您要定义一个命名空间前缀,然后将它映射至一个特殊字 符串a 下面介绍如何定义我们这三个 元素的命名空间前缀: 第二章x m l 与数据库一7 m r s - l o r do ft h er i n g s n c 2 9 4 8 3 8 8 - 1 9 8 3 在该示例中,三个命名空间前缀是a d d r 、b o o k s 和m o r t g a g e 。请注意,为特定 元素定义命名空间意味着该元素的所有子元素都属于同一命名空间。第一个 元素属于a d d r 命名空间,因为其父元素 属于该命名空间。 最后要指出的是:命名空间定义中的字符串仅仅是字符串。这些字符串看似 u r l ,其实不是。您可以定义x m m s :a d d r = m 讯e ”,也是有效的。命名空间唯一的 重要性在于其唯一性:这就是为什么大多数命名空间定义看起来象u r l 的原因。 x m l 解析器不会到h t t p :a v w w z y x c o r n b o o k s 去搜索d t d 或模式,它只是把那个 文本作为字符串使用。 2 1 2d t d 与x m l 模式 根据这些来自于w 3 c 的x i v l l 规范 7 1 定义的x m l 文档基本规则,可以编写格 式良好的x m l 文档,然而,为了使x m l l 0 的其他用户能够理解符合你创建的词 汇表的文档的结构,就必须通过某种通用的方式说明词汇表的语法规则。这里有 两种方法。 一种方法是使用d t d ( 文档类型定义,d o c u m e n t t y p ed e f i n i t i o n ) 。d t d 定义 可以在x m l 文档中出现的元素、这些元素出现的次序、它们相互嵌套的方式以及 x m l 文档结构的其它详细信息。 另一种方法是使用x m l 模式( x m ls c h e m a ) 。模式可以定义所有能在d t d 中使用的文档结构,它还可以定义数据类型和比d t d 更复杂的规则。w 3 c 在提出 最初的x m l 规范的几年之后开发了x m l s c h e m a 规范。 2 1 2 1d t d d t d 允许您指定x m l 文档的基本结构。下面是一个定义地址文档基本结构 的d t d : 2 定义模式中的元素 示例x m l 模式用 元素定义了一些x m l 元素。头两个定义的元 素( 和 ) 由其它元素组成。 元素定义了包含在这两 个元素中的元素的序列。 与d t d 版本一样,x m l 模式示例定义 包含一个 、一个 、一个 、一个 和个 元素,并且依照上面的次序。 第二章x m l - q 数据库 旦 请注意,该模式实际上用 x s d :c o m p l e x l 阳e ,元素定义了新的数据类型。 大多数元素包含文本;定义它们很简单。您只要声明新的元素,然后指定它 的数据类型为x s d :s t r i n g : 3 定义模式中元素的内容 示例模式为两个元素的内容定义了约束: 元素的内容必须是两个字符 长,而 元素的内容必须与正则表达式【0 9 】 5 ) ( 一【0 9 1 4 ) ? 1 n 配。 对: 和 元素,模式用约束定义了新的数据类型。第一个情 况使用 元素,而第二个情况则使用 元素定义该元素必须匹 配的正则表达式。 2 1 3 样式表与x s l t 对于x m l 数据,应用程序要综合x m l 文档、文档类型说明( d t d s c h e m a ) 以及样式表( s t y l es h e e t ) 三方面要素来处理和显示它。在x m l 文档中只包含了 数据信息,并没有涉及文档如何显示。其实制定x i v l l 标准的目的是要使数据结构 化,赋予其明确的语意,使之易于进行数据交换。可以说,x m l 文档本身是重内 容面不重形式的。 可是x m l 结构化地组织信息固然好,但如果不加修饰地把一大堆枯燥的数 据摆在那里,也足以令人跟花头痛。 样式表是一种专门描述结构文档表现方式的文档,它既可以描述这些文档如 何在屏幕上显示,也可以描述它们的打印效果,甚至声音效果。样式表一般不包 含在x m l 文档内部,而以独立文档的方式存在。样式表可以实现非常复杂的显示 效果,同时由于样式描述与数据描述相分离,显示细节的描述并不影响文档中数 据的内在结构。 样式表的最大优点是:x m l 关于文档浏览的基本思想是将数据与数据的显示 分别定义。这样一来,x m l 格式文档不会重蹈某些h t m l 文档结构混杂、内容繁 乱的覆辙,x m l 的编写者也可以集中精力于数据本身,而不受显示方式的细枝末 节的影响。不仅如此,样式表还带来另一个好处,即定义不同的样式表可以使相 同的数据呈现出不同的显示外观,从而适合于不同应用,甚至能够在不同的显示 设备上显示。这样,x m l 数据就可以得到最大程度上的重用性,满足不同的应用 需求。 w 3 c 已经给出了两种样式表语言的推荐标准,一种是c s s ( c a s e a d i n gs t y l e s h e e t s ,层叠样式表) ,另一种是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 ,可扩展样 式表语言) 。 兰! 型生至塑至童茎鱼! ! 翌垦基芷星塑塞一一 2 1 3 1 两种样式表 1 c s s c s s 是一种样式表语言。它被设计为提供一种样式化h t m l 的手段,从而允 许网络开发人员将内容从描述中分离出来。在c s s 之前,样式化h t m l 文件的唯 一办法是脚本语言和动态h t m l ( d h t m l ) 这样的混和型解决方案。c s s 在学习 和使用方面与这些应用相比更加简单,这就使它成为样式化h t m l 文件的理想技 术。虽然c s s 是为h t m l 的使用而设计的,但它也可以用于样式化x m l 文件。 当一个c s s 样式表被一个x m l 文件使用时,它将x m l 树结构作为应用设计 规范的基础。虽然对于那些只需要样式化文件的现有结构的x m l 应用程序来说, 它非常有用。但许多应用程序在x m l 文件被样式化和显示之前,需要转换x m l 的内容。也就是说,一些应用程序将需要比较、分类甚至重新排列文件数据,这 对予c s s 来说是不可能的。结果就是,c s s 更加适合于基于现有文件结构的x m l 文件的简单样式化。 2 x s l x s l 也是一种样式表语言,它可以处理x m l 文件显示的两方面问题:将文件 从一种类型转换为另一种类型( x s l t ) ;根据格式化规则样式化文件( x s l 格式 化对象) 。 。 x s l t 和x s l 格式化对象是一种x m l 词表的实现。这些词表由相应的元素和 属性组成,它们携带了文件每一部分的显示实现方法。使用这些词表使网络开发 人员可以控制对文件内容的转换,以及随后对转换后内容的显示。 当一个x m l 文件使用x s l 进行转化时,转换使用了x m l 文件的逻辑树结构。 这就意味着一个x s l 转换的结果是一棵x m l 数据树,而不是一个x m l 文件。这 一点非常重要,因为x s l 根据包含元素的树来进行工作,而不是根据如标记这样 的x m l 语法构造。 3 x s l 与c s s 的比较 在x s l 和c s s 之间有两点不同:c s s 可被用于样式化h t m l 文件,而x s l 则不能;x s l 可用来转换x m l 文件,而c s s 则不能。 同样的,c s s 有一些重要的限制: 它不能获得一块文件数据并在其他地方重新利用。 它没有节点间的同属关系的概念。 它不支持结果结构( 有条件的) 。 它不能计算数量或存储变量值。 如上面所指出的,x s l 显而易见是个比c s s 更为强大的技术,但是所附加 的能力是以随之而来的复杂性为代价的。如果你并不介意费更多事,x s l 用于查 询和重排列文件内容的功能当然也就没有意义了。在x s l 中的特别的样式化工具 丝三童! 型生芝墼塑堕旦 是与c s s 中的相关工具非常接近的,因此x s l 的转换部分在它变得复杂时成为了 主要的优势。 2 1 3 2x s l 变换( x s i t ) x s l 本身就是一个x m l 文档,它是通过x m l 进行定义的,遵守x m l 的语 法规则,是x m l 的一种具体应用。因此系统可以使用同一个x m l 解释器对x m l 文档及其相关的x s l 文档进行解释处理。x s l 由两大部分组成:第一部分描述了 如何对一个x m l 文档进行转换,转换为可浏览或可输出的格式;第二部分则定义 了格式对象f o ( f o r m a t t e do b j e c t ) 。由于到目前为止,w 3 c 还未能出台一个能被 多方认可的f o ,因而现在一般所说的x s l 多指x s l t ( x s l t r a n s f o r m a t i o n s ,x m l 变换) o x s l t 的主要功能就是转换,它将一个没有形式表现的x m l 内容文档作为一 棵源树,将其转换为一个有样式信息的结果树。在x s l t 文档中定义了与x m l 文 档中各个逻辑成分相匹配的模板,以及匹配转换方式。它可以很好地描述x m l 文 档向任何一个其它格式的文档转换的方法,例如转换为另一个逻辑结构的x m l 文 档、h t m l 文档、x h t m l 文档、v r m l 文档、s v g 文档等等。 使用x s l 定义x m l 文档显示方式的基本思想是:通过定义转换模板,将x m l 源文档转换为带样式信息的可浏览文档。限于目前浏览器的支持能力,大多数情 况下是转换为一个h t m l 文档进行显示。 将x m l 文档用x s l 样式转换为h t m l 文档的步骤是:先用x m l 解释器将 x m l 文档解释成d o m 对象,相当于建立了原文档的一个节点树。然后用x m l 解释器解释x s l 文档,用模板匹配的方法去遍历x m l 节点树,将树中的节点按 模板的设定转换为模板指示的显示语言。 2 2 1x m l 文档的分类 2 2x m l 文档与数据库 x m l 目前正在成为各种数据特别是文档的首选格式。由于它具有标记不同字 段的能力,使得搜索变得更简单和动态化,从而把企业准备扔进废纸篓的文件变 成了进行数据挖掘的宝藏。x m l 把内容从表现格式中解放出来,使材料可以多次 重复使用。这样一来,同样的内容可以分别用于新闻发布、自皮书、宣传册、演 示和w e b 页面。对那些需要把不兼容的系统融合在一起的企业,x m l 可以充当公 共传输工具,以中性格式进行数据传输。此外,x m l 还可以处理各种数据,包括 1 4 x m l 查询语言x q u e r y 及其扩展研究 文本、图像和声音,并且可以由用户进行扩展以处理任何特殊类型的数据。x m l 的特性使之成为在线和离线数据的共同语言。 按照x m l 文档的内容,可以将x m l 分为以数据为中心和以文档为中心两类。 一、以数据为中心的x m l 文档 以数据为中心( d a t a c e n t r i c ) 的x m l 文档侧重于文档中的数据,而非文档格 式,这类文档如航班信息、销售定单、科学计算结果等。这种文档的数据一般由 机器产生,来源于传统数据库中的数据。主要应用在电子商务、e r p ( e n t e r p r i s e r e s o u r c ep l a n n i n g ,企业资源计划) 、e a i ( e n t e r p r i s e a p p l i c a t i o ni n t e g r a t i o n ,企业 应用集成) 等领域,集成不同数据源的数据,交换信息。 以数据为中心的x m l 文档具有以下特点: 结构化的数据 数据粒度大小适中 很少或没有混和内容( m i x e dc o n t e n t ) 文档顺序( d o c u m e n t o r d e r ) 不重要 二、以文档为中心的x m l 文档 以文档为中心( d o c u m e n t c e n t f i c ) 的x m l 文档主要是用来表示人类自然语言 描述的数据,如电子邮件、书和用户手册等。这种文档具有更复杂的结构,一般 不是机器自动产生的。目前,w e b 上的大部分数据都可以表示成这种文档。 以文档为中心的文档具有以下特点: 半结构化或非结构化的数据 较多的混和内容 文档顺序很重要 2 2 2x m l 数据库 现在的问题是,怎样管理x m l 标记的数据? 种很有希望的方法是用数据库 对x m l 进行存储、检索和操作,即把x m l 标记的数据收入一个框架中,在一种 更容易管理、更系统化、更为人们所熟悉的环境中完成搜索、分析、更新和成果 输出工作。 这里有两种不同的观点:纯粹派认为,只有以x i v i l 原始的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 饭店抵押合同5篇
- 建设工程项目施工廉政合同4篇
- 婚前房产协议书范文5篇
- 新解读《GB-T 32612-2016纺织品 2-甲氧基乙醇和2-乙氧基乙醇的测定》
- 螺蛳粉运输合同范本
- 整形诊所合作合同范本
- 租赁水果树合同范本
- 建设合同范本哪里
- 玻璃代理销售 合同范本
- 车辆转换合同范本
- 建设工程项目协同作业方案
- GB/T 45972-2025装配式建筑用混凝土板材生产成套装备技术要求
- 变频及伺服应用技术(郭艳萍 钟立)全套教案课件
- 秋冬季安全知识培训
- 2024新译林版英语八年级上单词汉译英默写表(开学版)
- 美的集团工作流程体系
- 2025年中国冷冻治疗仪市场调查研究报告
- 新学期+心动力+课件-2025-2026学年高二上学期开学第一课主题班会
- (2025年标准)出资收车协议书
- 2025-2026学年外研版(三起)(2024)小学英语四年级上册教学计划及进度表
- 《家具与陈设设计》课件(共十章)
评论
0/150
提交评论