(信号与信息处理专业论文)基于xml信息发布技术研究与应用.pdf_第1页
(信号与信息处理专业论文)基于xml信息发布技术研究与应用.pdf_第2页
(信号与信息处理专业论文)基于xml信息发布技术研究与应用.pdf_第3页
(信号与信息处理专业论文)基于xml信息发布技术研究与应用.pdf_第4页
(信号与信息处理专业论文)基于xml信息发布技术研究与应用.pdf_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 目前i n t e r a c t 上的信息大部分以h t m l 格式为主,主流的信息发布( 或者称 内容管理) 系统也是以h t m l 作为信息的主要载体格式。h t m l 的设计以人机 交流为目标,其文法主要描述的是内容的视觉效果,但信息的可用度非常有限。 随着i n t e r a c t 应用的快速发展,h t m l 和基于h t m l 信息发布系统的局限性也 越来越凸现出来。 本论文采用x m l 技术,以a p a c h ec o c o o n 为信息发布系统的基础框架,构 建了一个全新的信息发布系统。该系统已成功地应用于法院电子政务中。在系 统中,充分的使用了x m l 以及c o c o o n 的优秀特性,将内容和展示逻辑分离, 不但提供了用于支持传统人机交互的展示视图,而且很容易生成数据视图,供 信息处理系统使用,提高了l a t e m e t 上信息的可用度;通过使用c o c o o n 的管道 技术,系统可以轻松的支持各种前端应用,如w a p p d f o f f i c e s v g 等等, 而不单单局限于浏览器;另外,本文也提出了在新的系统结构下的信息发布流 程,使相关工作人员分工更加明确,还加强了系统自动化的程度,提高了系统 使用人员的工作效率。 关键字:x m l ,c o c o o n ,x s p ,信息发布 a b s t r a c t a b s t r a c t m o s tw e bi n f o r m a t i o ni sr e n d e r e di nh t m lt o d a y , s oh t m li sp o p u l a ri nw e b i n f o r m a t i o np u b l i s h i n gs y s t e m h t m lt a g sd e s c r i b eh o wt or e n d e rt h i n g so nt h e s c r e e n p u ta n o t h e rw a y , h t m lt a g sa l ed e s i g n e df o rt h ei n t e r a c t i o nb e t w e e nh u m a n s a n dc o m p u t e r s h t m lt a g sc a n td e s c r i b ew h a tc o n t e n to fi n f o r m a t i o ni s ,s oi t sn o t s u i tf o rc o m m u n i c a t i o nb e t w e e nc o m p u t e r s w i t hw e ba p p l i c a t i o n sb l o o m i n g , t h e s h o r t c o m i n go fh t m l a n dh t m l - b a s e di n f o r m a t i o np u b l i s h i n gs y s t e m si sm o r ea n d m o r ee v i d e n t t h i si n f o r m a t i o np u b l i s h i n gs y s t e mi sb a s e do nx m l , w i t ha p a c h ec o c o o na s b a s i cf r a m e w o r ka n dh a sb e e na p p l i e di nc o u r ts u c c e s s f u l l y e x c e l l e n ts p e c i a l t i e so f x m la n dc o c o o nh a v eo c c u r r e di n t h i ss y s t e m o n eo ft h e s ei sk e e pt h ec o n t e n t d i s t i n c tf r o mt h er e p r e s e n t a t i o no fd o c u m e n t , s od a t ai n t h i ss y s t e mc a nn o tj u s tb e r e a db yp e r s o nb u ta l s ob ei n t e n d e df o ri n f o r m a t i o np r o c e s s i n gs y s t e m t h i sm e a n s w e bi n f o r m a t i o nc a nb ef u r t h e ru s e di nm u l t i p l es i t u a t i o n s i no r d e rt os u p p o r tn o t o n l yt h eb r o w s e r b u tk i n d so ff r o n ta p p l i c a t i o n se a s i l y , s u c ha sw a p , p d f , o f f i c ea n d s v g , t h i ss y s t e mu s e st h ep i p e l i n et e c h n i q u eo fc o c o o n a l s o ,t h ei n f o r m a t i o n p u b l i s h i n gf l o wi n t h i sn e ws y s t e ms t r u c t u r e d i v i d e st h ew o r km o r ed e f i n i t e l y , s t r e n g t h e n st h ef l e x i b i l i t yo fs y s t e m ,a n di m p r o v e st h ew o r ke f f i c i e n c yg r e a t l y k e yw o r d s :x m l , c o c a 3 0 n ,x s e , i n f o r m a t i o np u b l i s h i n g l l 学位论文版权使用授权书 本人完全了解同济大学关于收集、保存、使用学位论文的规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、 扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供 本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有 关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前 提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名菹撕眸 j 他r 年夕月口日 本授权书。 黝燧轻弋肌学位论文作者虢韶畔 年弋月矿日 时年尹月口日 同济大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 签名:如妓斗 沙心年其| o e l 第1 章引言 1 1 背景 第1 章引言 随着互联网的发展,i n t e r n e t 技术已经渗透向社会生活的各个角落,各种各 样的w e b 应用迅速发展并成为i n t e m e t 世界的重要组成部分,i n t e r n e t 上的信息 也随之迅速增长。目前这些信息大部分是以h t m l 的形式存在,h t m l 的简洁 性以及易用性,从诞生之初便很快获得了成功,但随之而来的w e b 信息的复杂 化、多样化使大量基于h t m l 的信息成为了人们的噩梦。因为h t m l 描述的是 文档的表示语义即网页的外观,它根本不描述文档本身即文档的内容 是什么。另外一个问题是,h t m l 是不可扩展的,同时也充满着不一致性。正 是因为这样,网上大量的信息处于一种繁杂的、无序的状态,而且随着信息量 的增加,这一系列问题的解决迫在眉睫。 在这种前提下,一种新的标记语言x m l 应运而生,x m l 以其简洁、无固 定模式限制、自相关等优秀的特点,以及丰富的围绕x m l 的外围技术的支持, 迅速在i n t e r a c t 的各种应用领域普及。x m l 在数据存储、交换、共享、使用上 的优势,使得在可以预见的将来,x m l 将成为i n t e m e t 上数据处理、交换的工 业标准。 由于历史的原因,目前大量的w e b 站点是采用h t m l 进行信息发布的,但 因为h t m l 的局限性导致文档的内容、表现无法分离,增加了开发以及发布后 的信息利用的复杂度。本课题的目的就是将x m l 技术与i n t e r a c t 信息发布相结 合,研究如何将x m l 技术应用到i n t e m e t 信息发布的领域中,以及如何采用x m l 优化基于h t m l 等技术的i n t e r n e t 信息发布过程。 1 2 研究内容 企业级内容管理系统可以被看成是一个企业信息架构的基础,其实现得越 完善,为用户提供信息的价值就越高。内容管理系统的本质就是从内容角度将 信息以具有一定粒度、可管理的“块一或组件的形式通过数据仓库进行存储和 第1 章引言 管理,系统可以实时对这些组件进行访问、更新和自由组合。基于w e b 的内容 管理建立在广义数据库理解的基础上,它是指在w e b 环境下对复杂的内容信息 进行有效的采集、组织与集成,实现方便和准确的信息查询与发布。一个基于 w e b 应用环境且设计出色的内容管理系统具有开放的商业机遇,这些机遇依赖 于对信息内容的复用和加工,使信息能够以多种不同的方式从内容的组织和数 据的样式化形式等方面进行个性化处理,并可以利用数据挖掘技术发现蕴含在 其中的知识和规则,从而为决策支持提供服务。从技术上讲,w e b 内容管理系 统的研究融合了数据仓库技术、数据挖掘技术、w w w 技术、信息检索技术、 移动计算技术以及多媒体技术等,是一门综合性很强的新兴研究领域。 本文研究的主题是构建一个基于x m l 的内容发布系统。a p a c h ec o c o o n 是 一个优秀、成熟的x m l 信息发布框架,本文就以a p a c h ec o c o o n 为基础框架, 通过剖析a p a c h ec o c o o n 的实现和技术特点,再结合应用需求,构建一个企业级 的信息发布系统。 1 3 研究目的、意义 1 3 1 研究目的 x m l 是针对包含结构化信息的文档而设计的一种标记语言。x m l 是元语言 中的一种。所谓“元语言 ,就是能够帮助不同个人和组织定制自己的标记语言 的语言,定制后的标记语言可以用于特定应用领域,实现信息数据的交换。x m l 正在成为数据组织和交换的实施标准,并且大量的x m l 数据已经出现在w e b 上。同时,x m l 作为一种基础技术在知识管理、通信管理和数据传送领域扮演 着一种重要的角色。不同应用程序之间的数据交换对于开发分布式系统和提供 电子商务的灵活性需求来说非常重要。x m l 可以将i n t e r n e t 转变为一个基于知 识仓库的全球计算平台。最终的环境可以被看成是实现电子数据交换的强大基 础架构。一旦采用x m l 表示文档中的元数据,则可以编写一个相关的x s l 文 档用以定义元数据的显示方式。根据不同用户的不同需求、不同关系或者不同 的显示能力,在x s l 文档中为不同对象定义不同规则,并将这些规则应用在x m l 数据上,实现不同的数据视图。 内容管理的应用范围较广,研究课题也很多。本文所研究的目的是,构建 2 第1 章引言 一个基于x m l 的信息发布技术的系统框架,并将该技术应用于实际的w e b 应 用系统开发中,以此解决传统的h t m l 发布系统所面临的问题,如信息的可用 性和有效性、计算机之间的信息交互、丰富的前端格式支持、应用间的信息整 合等等,在信息发布系统中充分利用和发挥x m l 的技术优势,实现信息发布系 统的革命性突破。 1 3 2 研究意义 通过本文的研究,构建基于x m i c o c o o n 的内容管理系统,同时结合法院 和政府的相关需求,将其应用到实际的应用系统中,从而解决旧的系统难以解 决的一些问题,并对系统进行重构和优化。主要意义体现在以下几个方面: ( 1 ) 提高数据的可利用度 数据的可用度是原来的旧系统没有办法解决的一个根本问题,基于x m l 的 内容管理系统的一个主要特点就是内容“块仅仅由数据组成( 例如文本、图 形、表格等) ,而针对元数据定义的表示信息被单独保存。在递送元数据信息的 同时提供样式信息的处理方式意味着通过数据管理系统所管理的信息可以很方 便地满足不同目标的需求。基于x m i x s l 技术实现的内容管理系统可以在文档 层实现数据模型层与表示层之间的分离。这使得数据可以被单独进行有效的使 用和处理。 ( 2 ) 实现应用系统之间数据的互操作性以及应用的整合 在法院和政府应用系统中,内容管理系统可能涉及多个数据源,这些数据 源包括文件系统、数据库系统,它们之间的数据格式复杂且异构。此外,系统 不同功能模块之间所采用的数据模型也可能存在差异。在数据交换过程中,将 源数据采用基于x m l 的统一数据模型进行表示,可以有效地解决数据访问统一 接口问题。由此提出了在多种不同数据源之间实现基于异构数据模型的数据转 换问题,本文中阐述的对c o c o o n 访问关系型数据的扩展很大程度上有效地解决 了关系数据库与x m l 之间以及基于两种异构模式的x m l 文件之间的数据转换 问题。 ( 3 ) 实现通用分布式计算环境 x m l 技术的应用将改变传统“客户朋艮务器工作模式中将运算负荷集中在 固定服务器端的模式,可将其按需分布在客户端和分布式计算环境下的不同服 3 第1 章引言 务器上。w e b 服务的产生和发展就是这种应用的成功印证。 在w e b 环境下,x m l 数据处理技术的另一个重要应用领域就是基于x m l 的半结构化信息处理。w e b 与传统的文档管理系统结合在一起,构成了一个巨 大的、异构且分布式的文档仓库,其中比重最大的数据是半结构化文档。通过 对x m l 文档和元数据的利用,将半结构化文档转换为能够提供良好信息复用性 且基于x m l 的多视图表示,从而使任何具有计算能力的计算机都能够实现针对 该类文档的数据利用,甚至复杂的信息查询检索。这对于构建法院和政府内部 分布式内容管理系统是一个必要的前提条件。 ( 4 ) 可定制发布和数据表示 如果希望在w e b 环境下生成具有分页特征的文档,则必须使用一种传统的 文本编辑软件( 例如m i c r o s o f tw o r d ) 来进行文档的设计。而随着x m l 技术在 信息系统中的推广,我们可以使用x m l 文件保存纯结构化的源数据,并使用 x s l t 来定义针对x m l 元数据的查询条件和排版信息。通过x s l 转换处理,即 可得到同时提供所需元数据和样式信息的x s l - f o 文件。 x s l - f o 规范提供了丰富的表示格式语义,采用x s l - f o 作为数据表示引擎 中定义数据样式化信息的元语言,可以保证样式化信息能够满足各种用法和表 示形式的要求。为了使数据表示过程能够同时适用于不同类型浏览设备的要求, 特别是满足种类繁多的移动计算设备的要求,输出格式的可扩展性成为该系统 设计所需考虑的首要因素,本文中阐述了如何基于c o c o o n 来支持可定制的发布 和数据表示。 ( 5 ) 对信息发布流程的优化 随着内容管理走向政府应用的前台,其与其他应用系统中业务流程的结合 日益紧密,内容管理系统中工作流和内容协作支撑技术的核心作用开始凸现出 来。虽然内容存储、检索和分析方面的需求作为信息基础应用相对稳定,但内 容采集、加工、发布和服务等应用却常常要发生变化,内容管理需要做到随需 应变,以提高内容在法院业务流程中的流转效率。为了让内容能够及时、准确 地自动传递到相关人员手中,内容管理流程需要符合法院的业务流程。高效灵 活、易管理、易扩展的内容工作流技术和丰富、开放、跨应用甚至跨平台的内 容协作支持使内容管理流程越来越重要。本文的研究方向是基于c o c o o n 来构建 这个内容管理系统,并利用c o c o o n 中对信息发布流程的优秀支持能力来改善原 有的工作流程,同时提供更开放、易于管理和扩展的信息发布流程,提高相关 4 第1 章引言 工作人员的工作效率。 5 第2 章x m l 技术 2 1x m l 技术特点 2 1 1x m l 简介 第2 章x m l 技术 x m i ,一可扩展的标记语言( 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 ) 定义的一组规范,便于软件开发人员和内容创作者在网页上组织 信息。其目的不仅在于满足不断增长的网络应用需求,同时还希望借此能够确 保在通过网络进行交互合作时,具有良好的可操作性和互操作性。 与h t m l 一样,x m l 也源自s g m i xs t a n d a r dg e n e r a l i z em a r k u pl a n g u a g e ) , 它保留了s g m l 8 0 的功能,使其复杂程度降低了2 0 ,虽然复杂程度降低不 多,但是x m l 却有h t m l 语言所欠缺的巨大的伸缩性与灵活性。x m l 不再像 h t m l 一样有着一成不变的格式。x m l 实际上是一种定义语言,使用者可以定 义无穷无尽的标记来描述文件中的任何数据元素,从而突破了h t m l 固定标记 集合的约束,使文件的内容更丰富、更复杂并组成一个完整的信息体系。 x m l 语言可以让信息提供者根据需要,自行定义标记及属性名,也可以包 含具体的描述,从而使x m l 文档的结构可以复杂到任意程度。x m l 技术主要 有三个要素: ( 1 ) s c h e m a 或者d t d ( 模式或者文档类型定义) 规定了x m l 文档的逻辑 结构,定义了x m l 文档中的元素、元素的属性以及元素和元素属性之间的关系, 它可以帮助x m l 的解析程序校验x m l 文档标记的合法性。 ( 2 ) 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 ,可扩展样式语言) 用于转换x m l 文档表现样式的语言,它能在客户端使w e b 浏览器改变x m l 文档的表示方法, 从而不需要再与服务器进行交互通信。 ( 3 ) x l l ( e x t e n s i b l el i n kl a n g u a g e ,可扩展链接语言) 虽然x s l 也能够在 服务器端对x m l 文档产生作用,但x l l 将进一步扩展目前w e b 上已有的简单 链接。 6 第2 章x m l 技术 x m l 给基于w e b 的应用系统赋予了强大的功能和灵活性,其优点主要可以 表现在以下三个方面: ( 1 ) x m l 允许各种不同的专业( 如音乐、化学、数学等) 开发与自己特定领 域有关的标记语言。这就使得该领域中的人们可以交换笔记、数据和信息,而 不用担心接收者是否有特定的软件来创建数据。 ( 2 ) x m l 具有较好的保值性。过去4 0 年来的大多数计算机数据都丢失了, 不是因为自然损害或是备份介质的磨损,而只是因为没有人来写出如何读取这 些数据介质和格式的文档。以不常用的格式保存的二进制数据,数据也许会永 远地消失。x m l 基本上使用的是非常简单的数据格式,可以用1 0 0 的纯a s c i i 文本来书写,也可以用几种其他定义好的格式来书写。a s c h 文本是几乎不会竹 磨损”的。 ( 3 ) 便于不同应用间交换数据。由于x m l 是非专有的并易于阅读和编写, 就使得它成为在不同的应用间交换数据的理想格式。x m l 使用的是非专有的格 式,不受版权、专利、商业秘密或是其他种类的知识产权的限制。x m l 的功能 非常强大,同时对于人类或是计算机程序来说,都容易阅读和编写。因而成为 交换语言的首选。 2 1 2x m l 的正式目标 下面是w 3 cw e b 站点( h t t p :w w w w 3 o r g t r r e c - x m l ) 上的x m l 正式规 范中阐述的x m l 的1 0 个设计目标: ( 1 ) x m l 应该可以直接用于i n t e r n e t 。正如已经在本章中看到的,x m l 的主 要设计目标是在w e b 上保存并传递信息。 ( 2 ) x m l 应该支持各种应用程序。尽管x m l 的主要目的是通过服务器和浏 览器程序在w e b 上传递信息,但是它还可以被其他类型的程序使用。例如,x m l 已被用于在财经程序之间交互信息,用来发布和更新软件,以及为通过电话传 递信息编写语音脚本。 ( 3 ) x m l 应该与s g m l 兼容。正如我解释的,x m l 是s g m l 的专用子集。 这种特性的一个好处是s g m l 软件工具可以很容易地适用于x m l 。 ( 4 ) 编写处理x m l 文档的应用程序应该很简单。如果希望x m l 有实用性, 那么它必须很容易编写出能够处理x m l 文档的浏览器和其他程序。实际上,从 7 第2 章x m l 技术 sgml 中派生出x m l 子集的主要原因是,编写处理s g m l 文档的程序很笨拙。 下列设计目标主要是为了支持这些基本目标而服务的。 ( 5 ) x m l 中可选特性的数目应该尽可能地少,理想情况是零。x m l 中可选 特性的数目最少使得编写处理x m l 文档的程序更容易。s g m l 中有大量冗余的 可选特性是它为什么被认为对于定义w eb 文档来说不实用的主要原因。可选的 s g m l 特性包括重定义标签中的定界字符( 通常为 ) ,并且当处理程序知道 元素结束的位置时忽略结束标签。一个处理s g m l 文档的健壮程序应该考虑所 有的可选特性,即使这些特性很少使用。 ( 6 ) x m l 文档应该便于人阅读而且相当清晰。x m l 被设计为混合语( 1 i n g u a f r a n c a ) ,以便在用户和程序之间交换信息。可读性可通过允许人们( 以及特殊 的软件程序) 编写和阅读x m l 文档来实现目标。这种便于人阅读的特性使x m l 区别于大部分被数据库和字处理文档所使用的专用格式人们可以很容易地阅 读x m l 文档,因为它是用纯文本编写的,而且具有类似树型的逻辑结构。你可 以通过为文档元素、属性和实体选择有意义的名字,并且增加有用的注释来增 强x m l 的可读性。 ( 7 ) x m l 设计应该快速完成。当然,只有当程序员和用户团体都采纳x m l 时,x m l 才是一种可行的标准。因此,在这个团体开始采纳另一个标准之前, 这个标准还需要完善,软件公司应该以很快的速度生成该标准。 ( 8 ) x m l 的设计应该正式而且简洁。x m l 规范是用一种定义计算机语言的 正式语言编写的,这种语言就是众所周知的扩展巴斯克范式记法( e x t e n d e d b a c k u s n a u rf o r m ,e b n f ) 。这种正式语言尽管看起来很难理解,但是由于解决 了二义性的问题,使得它更容易编写x m l 文档,尤其是x m l 处理软件,这就 进一步地鼓励了人们采纳x m l 。 ( 9 ) x m l 文档应该易于创建。要让x m l 成为一种适用于w eb 文档的实用 标记语言,不仅要求x m l 处理程序必须很容易编写,而且要求x m l 文档本身 必须很容易创建。 0 0 ) x m l 标记的简洁是最不重要的。为了满足前面目标6 的要求( x m l 文 档应该便于人阅读且相当清晰) ,x m l 标记不应过于简洁,以至于含义模糊f 1 1 。 8 第2 章x m l 技术 2 1 3x m l 与h t m l 区别与联系 x m l 的设计目标与h t m l 有着本质的区别,x m l 不是h t m l 的替代品。 现在有一种流传较广的观点认为x m l 将会取代h t m l ,这个观点是错误的。因 为x m l 和h t m l 被设计出来的目标是各不相同的。 ( 1 ) x m l 是为了描述数据而设计的,它将焦点放在什么是数据、如何存放数 据上面。 ( 2 ) h t m l 是为了显示数据而设计的,它的设计焦点放在数据看起来像什么、 如何更好地显示数据上面。 ( 3 ) h t m l 与信息显示相关,而x m l 与信息描述相关。 ( 4 ) 在将来的w e b 开发中,x m l 将被用于存放、描述数据,而h t m l 将用 于格式化和显示同样的数据。对于x m l 的最好的描述可能是:x m l 是一种跨 平台的,与软硬件无关的,传输信息的工具。 ( 5 ) x m l 标记并不是x m l 技术自身预定义好的。用户可以自己创建属于自 己的标记库。而用于组织h t m l 页面的标记都是预定义好的。 2 1 4x m l 的主要应用 x m l 有着十分广泛的应用,其中比较主要的应用有以下几类。 ( 1 ) x m l 可以从h t m l 中分离数据。 有了x m l ,用户的数据可以在h t m l 文件之外存储。在不使用x m l 的情 况下,h t m l 用于显示数据,而数据必须存放在h t m l 文件之内,数据和格式 化的标记混合在一起,也许还会有一些在客户端运行的脚本。使用了x m l ,数 据就可以存放在分离的x m l 文档之中。这个方法可以让用户集中精力于使用 h t m l 做好数据的布局与显示工作,并且确保底层数据的改变不会导致对h t m l 文档的任何改变。x m l 数据同样可以以”数据岛”的形式存储在h t m l 页面当中 ( 仅有m i c r o s o f t 的i n t e r a c te x p l o r e r 浏览器支持这种技术) ,用户仍然可以集中 精力于使用h t m l 做好数据的格式化和显示工作。 ( 2 ) x m l 用于数据交换。 使用x m l ,我们可以在任何不兼容的平台之间传递数据。在现实世界中, 计算机系统和数据库系统所存储的数据有各种各样的格式。对于开发者而言, 最耗时的工作之一就是在遍布网络的系统之间交换数据。将数据转化为x m l 格 9 第2 章x m l 技术 式存储可以大大减少交换数据时的复杂性,并且还可以使得这些数据能够为不 同类型的程序所读取。 ( 3 ) x m l 应用于b 2 b 。 使用x m l ,金融信息可以在网络中交换。在不远的将来,我们可以期望看 到许多关于x m l 和b 2 b ( b u s i n e s st ob u s i n e s s ) 的应用。x m l 正在成为遍布网 络的商业系统之间交换金融信息所使用的主要语言( 例如e b x m l ) 。许多与b 2 b 有关的完全基于x m l 的应用程序正在开发之中。 ( 4 ) x m l 用于数据共享。 利用x m l ,纯文本文件可以用来共享数据。既然x m l 文档是以纯文本的 格式存储,那么x m l 提供了一种与软硬件无关的共享数据的方法,这样可以很 容易地创建能够被不同应用程序读取的数据文件。同样的道理,用户扩展系统, 升级旧系统为新的操作系统,升级服务器、应用程序、采用新的浏览器也就方 便多了,而不用担心会产生文件格式不相容的情况。 ( 5 ) x m l 用于数据存储。 利用x m l ,纯文本文件可以用于数据存储。大量的数据可以存储在数据库 系统中,或者是存储在x m l 文档中,应用程序可以往存储系统中写入数据或者 是取回数据。 ( 6 ) x m l 可以用于创建新的语言。 2 2x m l 语法规则 一个x m l 文档由两个主要的部分组成:序言和文档元素( 也就是众所周知 的根元素) 。此外,在文档元素之后,一个格式正确的x m l 文档可以包括注释、 处理指令和空格。 x m l 元素是以树型分层结构排列的,元素可以嵌套在其他元素中。下面是 创建格式正确的x m l 文档的一些基本规则: ( 1 ) 文档必须正好有一个顶层元素( 文档元素或根元素) 。所有其他元素必 须嵌入到其中。 ( 2 ) 元素必须被正确地嵌套。也就是说,如果一个元素在另一个元素中开始, 那么它必须在同一个元素中结束。 ( 3 ) 每一个元素必须同时拥有起始标签和结束标签。与h t m l 不同,x m l 1 0 第2 章x m l 技术 不允许忽略结束标签- 即使浏览器能够推测出元素在何处结束时也是如此。 ( 4 ) 起始标签中的元素类型名必须与相应结束标签中的名称完全匹配。 ( 5 ) 元素类型名是大小写敏感的。实际上,x m l 标记中的所有文本都是大小 写敏感的。例如,下列元素是非法的,因为起始标签的类型名与结束标签的类 型名不匹配: l e a v e so fg r a s s 2 3x m l 相关核心技术 2 3 1x s l 简介 x s l 是w 3 c ( w o r l dw i d ew e bc o n s o r t i u m ,国际互联网联盟) 推荐的标准。 x s l 实际上由如下三种语言组成: ( 1 ) x s l t ( x s lt r a n s f o r m a t i o n ,转换x s l 的语言) x s l t 是一种转换x m l 文档为其它类型文档的语言,利用它可以将x m l 文档转换成另外的x m l 文档甚至是普通的文本。 ( 2 ) x p a t h x p a t h 是定义x m l 局部或者模式的语言。x p a t h 是在x m l 文档各部分之间 寻址所使用的语言。x p a t h 主要是为x s l t 设计的。 ( 3 ) x s lf o ( x s lf o r m a t t i n go b j e c t ,x s l 格式化对象) x s l f o 是定义x m l 显示样式的语言。其作用是格式化x s l 转换的结果, 使之成为合适的视觉输出或声音输出。 x s l t 和x p a t h 予1 9 9 9 年1 1 月作为两个单独的标准发布,同时成为w 3 c 的推荐标准。对于x s lf o ,w 3 c 没有专门的文档描述它,但是在x s l l 0 中有 关于它的说明。 2 3 2x s l t 技术 x s l t 是x s l 标准中最重要的部分,它是x s l 的一部分,用于将x m l 文 档转换为其它类型的文档或者是把x m l 文档转换成其它的x m l 文档。 x s l t 可以把x m l 文档转化成浏览器认识的文档类型,例如h t m l 。在一 般情况下,x s l t 把x m l 文档转换成h t m l 页面,通过把每一个x m l 元素映 第2 章x m l 技术 射为一个或多个h t m l 元素实现这个功能。 x s l t 可以在输出文件中增加新的元素,或者删除某些元素。它也可以重新 排列、归类x m l 文档中的元素,它还可以决定每一个元素是如何被显示的。x s l t 还有其它许多功能。 x s l 使用x s l t 把x m l 源树转换为x m l 结果树,即x s l 使用x s l t 把 x m l 源文档转换为x m l 结果文档。 在上述转换过程中,x s l t 使用x p a t h 来定义源文档的各个部分,并使它们 和一个或者多个预定义的模板相互配合。当一个匹配关系找到后,x s l t 将源文 档匹配的部分提取出来,根据预定义的模板转换为结果文档的一部分。如果源 文档中的某些部分没有与之匹配的模板,那么它们将保持现状不变,并同样成 为结果文档的一部分,这是一个普遍的规则【2 】。 下面将以一个简单的例子解释x s l t 技术的实现。这个例子使用x s l t 将一 个x m l 文档转换成h t m l 文档。首先编写一个结构良好的x m l 文档 c , d _ c a t a l o g x m l ,该文件的源代码如下: e m p i r eb u r l e s q u e b o bd y l a n u s a c o l u m b i a l o 9 1 9 8 5 f o rt h eg o o dt i m e s k e n n yr o g e r s u k m u c i km a s t e r 8 7 0 1 9 9 5 1 2 第2 章x m l 技术 b i gw i l l i es t y l e w i l ls m i t h u s a c o l u m b i a 9 9 0 1 9 9 7 t u p e l oh o n e y v a nm o r r i s o n u k p o l y d o r 8 2 0 1 9 7 1 然后编写一个x s l 样式单文件c d _ c a t a l o g x s l ,这个x s l 样式单文件应该至 少含有一个x s l 转换模板f 3 】。 c dc a t a l o g t i t l e 1 3 第2 章x m l 技术 a r t i s t c o u n t r y c o m p a n y p r i c e y e a x 下面在x m l 文档c d _ c a t a l o g x m l 中添加对x s l 样式单文件c a _ c a t a l o g x s l 的引用。经过修正的c d _ c a t a l o g x m l 文件如下所示: 添加样式单文件后,c d _ c a t a l o g x m l 经x s l t 转换后的结果如表2 1 所示。 1 4 第2 章x m l 技术 表2 1 修正后的c d _ c a t a l o g x i i l l 运行效果 _ 荫一厂;舳t i s t 蘑谲面r 说面前磷 菇; k 函醐e s q u e 琴磊d y l 矗一| ;u s a | c - o i u m b i a ,i i0 9 | + 19 8 5 f o rt h eg o o d t i m e s k e n n yr o g e r s3 i kl m u c i km a s t e r ;8 7 0 19 9 5 b i gw i l l i es t y l e ,i w i l ls m i t h;i u s a| c o l u m b i a ;9 9 0 ;19 9 7 t u p e l 。h o n e y| v a nm 。m s o n 孤| p o b - d 。r 8 2 0 ;19 71 2 3 3x s lf o 技术 x s l f o 本身就是一个基于x m l 的标记语言,它可以指定分页的详细细节、 布局、实际内容的样式信息。x s l f o 标记十分复杂冗长,但因此也十分的详细。 事实上唯一的一个大规模产生x s l f o 文件的方法就是使用x s l t 程序来制造源 文档。最后,一旦编写好x s lf o 文件,就需要将其提交到输出媒介中,例如纸 张,或者打印机,或者是某种特殊的文档。目前几乎没有什么现成的工具来做 最后一步工作,所以x s l f o 远不如x s l t 那么流行与受人关注。 要把f o 文件转化为相应的p d f 文件,必须借助a p a c h ef o pp r o j e c t 。f o p 是a p a c h ex m lp r o j e c t s 的7 个核心项目之一。它的主要作用就是将x s lf o 文 件串行化为p d f 文件。可以从h t t p :x m l a p a c h e o r g 上下载最新的a p a c h ef o p 工具。 2 3 4x m ln a m e s p a c e 技术 x m ln a m e s p a c e ( x m l 命名空间) 技术主要用于解决x m l 文件中元素命 名冲突的问题。在一个x m l 文档中使用他人的或者多个d t d 文件,就会出现 这样的矛盾:因为x m l 中标识都是自己创建的,在不同的d t d 文件中,标识 名可能相同但表示的含义不同,这就可能引起数据混乱。 比如在一个文档 w o o dt a b l e 中 表示桌子,而在另一个文 档 n a m el i s t 中 表示表格。如果我需要同时处理这两个文档, 就会发生名字冲突。 为了解决这个问题,于是就引进了n a m e s p a c e 这个概念。n a m e s p a e e 通过给 标识名称加一个网址r l ) 定位的方法来区别这些名称相同的标识。n a m e s p a c c 第2 章x m l 技术 同样需要在x m l 文档的开头部分声明,声明的语法如下: 其中y o u r 是用户定义的 的名称,就是名字空间的统 一资源指示n 符a m 。e s p a c e n a m c s p a c c u r i 假设上面的元素”桌子 ”来自家具定义的命名空间 h t t p :w w w y o u c o m p a n y c o m f i t m e n t ,我们就可以声明为: w o o dt a b l e 这样就将这两个 区分开来。注意的是:设置u r i 并不是说这个标识真的 要到那个网址去读取,仅仅作为一种区别的标志而已。 1 6 第3 章a p a c h ec o c o o n 技术研究 第3 章a p a c h ec o c o o n 技术研究 3 1a p a c h ex m lp r o j e c t 简介 c o c o o n 是a p a c h ex m lp r o j e c t 的一部分,并且与a p a c h ex m lp r o j e c t 的其 它技术紧密地耦合在一起。比如,在c o c o o l l 内部就使用了x e r c e s 、f o p 、x a l a n 等属于a p a c h ex m lp r o j e c t 的技术。 a p a c h ex m lp r o j e c t 目前包含了8 个子项目,分别是x e r c e s ,x a l a n ,c o c o o n , f o p ,x a n g ,s o a p ,b a t i k 和c r i m s o n ,这8 个子项目分别聚焦于x m l 应用的 不同方面。下面分别简单介绍这8 个子项目。 ( 1 ) x e r c e s x e r c e s 是一个x m l 解析器,使用j a v a 语言或者c + + 语言编写,还和p e r l 以及c o m 绑定在一起。x e r c e s 提供了强大的解释与产生x m l 文档的能力。 x e r c e s 有j a v a 和c + + 两种版本,实现了w 3 cx m l 和d o m ( l e v e l1 和l e v e l2 ) 标准,还有s a x ( v e r s i o n2 ) 标准。这个x m l 解析器的优点是高度模块化,高 度结构化,易于配置。x e r c e s 解析器还提供了对x m ls c h e m a 标准的支持。在 x e r c e s 的c + + 版本中,还提供了对p e r l 和对c o m 的封装,而且与m i c r o s o f t 的 m s x m l 解析器完全兼容。 ( 2 ) x a l a n x a l a n 是一个x s l t 样式处理器,使用j a v a 语言或者c + + 语言编写。x a l a n 提供了一个高性能的x s l t 样式单处理器。x a l a n 完全实现了w 3 c 关于x s l t 和x p a t h 的推荐标准。x a l a n 内含的x p a t h 处理器可以作为一个独立的单元运行。 x a l a n 目前同时提供了支持j a v a 和c + + 两种语言的版本。 ( 3 ) c o c o o n c , 0 0 3 0 n 是一个使用j a v a 语言编写的基于x m l 的w e b 出版框架,这是完整 的全新的w e b 出版框架,c o c o o n 支持x s p 技术。 ( 4 ) f o p f o p 是使用j a v a 语言编写的x s lf o 应用工具,可以用于将x s lf o 文件 转换成为p d f 文件。f o p 是世界上第一种实现x s l f o 驱动的打印格式化技术, 1 7 第3 章a p a c h ec o c o o n 技术研究 它是一个j a v a 应用程序,可以读取一个格式化对象树,并且将其转化为一个p d f 文档。所谓的格式化对象树可能来自于某个x s l t 引擎( 例如,x a l a n ) 的输出。 ( 5 ) x a n g x a n g 是一种使用j a v a s c r i p t 快速开发动态s e r v e rp a g e s 的技术。应用a p a c h e x a n g 能够快速构建数据驱动、跨平台的w e b 应用程序。x a n g 体系结构将数据、 逻辑和表现形式清楚地分离开来。x

温馨提示

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

评论

0/150

提交评论