(计算机应用技术专业论文)基于xml的电子表格文档格式转换技术研究.pdf_第1页
(计算机应用技术专业论文)基于xml的电子表格文档格式转换技术研究.pdf_第2页
(计算机应用技术专业论文)基于xml的电子表格文档格式转换技术研究.pdf_第3页
(计算机应用技术专业论文)基于xml的电子表格文档格式转换技术研究.pdf_第4页
(计算机应用技术专业论文)基于xml的电子表格文档格式转换技术研究.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 本文主要探讨基于x m l 的电子表格文档格式转换技术。由于x m l 语言具有丌放、 可扩展等特点,越来越多的文档格式开始采用x m l 语言描述,其中包括u o f 和o p e n x m l 。为保证文档的安全性和可靠性,以及实现文档信息在格式问的正确交换,文 档格式的转换成为亟待解决的问题。本课题主要研究u o f 与o p e nx m l 格式之间电 子表格文档的相互转换。 本文首先分析了u o f 和o p e nx m l 格式中电子表格部分的相同点和异同点。根 据u o f 与o p e nx m l 格式之| 、日j 的对比分析,以及目前各种文档格式转换方法的特点, 本文设计并实现了u o f 和o p e nx m l 格式关于电子表格文档的转换器。转换器采用 四层体系结构,基于n e tf r a m e w o r k 2 0 ,以x s l t 转换为主的技术路线。同时采取 了预处理、主转换和后继处理相结合的转换思路。成功实现了u o f 与o p e nx m l 格 式之间电子表格文档的双向转换。 本课题的转换器实现了u o f 与o p e nx m l 文档格式之间的互联互通,即文档信 息在两标准间的正确交换,进而保证了文档的安全性及可靠性。同时有利于中文办 公软件文档格式标准的应用推广。 关键字:u o f ;o p e nx m l ;电子表格文档;格式转换 a b s t r a c t a b s t r a c t t h ep a p e rd i s c u s s e st h et r a n s f o r m a t i o nt e c h n o l o g yo fx m l - b a s e ds p r e a d s h e e t d o c u m e n tf o r m a t s d u et om a n ya d v a n t a g e st h a tx m lh a s ,s u c ha so p e n n e s sa n d e x t e n s i v e n e s s m o r ea n dm o r ed o c u m e n tf o r m a t sa l ex m l - b a s e d ,e g ,u o f , o p e nx m l i no r d e rt oc o r r e c t l ye x c h a n g ed o c u m e n ti n f o r m a t i o na n dt oe n s u r et h es e c u r i t ya n d r e l i a b i l i t yo ft h ed o c u m e n t s ,t r a n s f o r m a t i o no fd i f f e r e n td o c u m e n tf o r m a t sb e c o m e s n e c e s s a r y t h i s r e s e a r c hf o c u s e so nt h eb i d i r e c t i o n a lt r a n s f o r m a t i o n b e t w e e n s p r e a d s h e e td o c u m e n t si nu o fa n do p e nx m lf o r m a t f i r s t l y , m a p p i n gb e t w e e nu o f a n do p l e nx m lf o r m a th a sb e e ns t u d i e d ,i n c l u d i n g t h es i m i l a r i t i e sa n dd i f f e r e n c e sb e t w e e nt h et w of o r m a t si nt h e i rs t r u c t u r ea n df u n c t i o n s , a sw e l la sx m lt r a n s f o r m a t i o nm e t h o d o l o g i e s b a s e do nt h a t ,t h eu o f - o p e nx m l t r a n s l a t o ri si m p l e m e n t e d ,w h i c hc a np e r f o r mt h eb i d i r e c t i o n a lt r a n s f o r mb e t w e e nu o f a n do p e nx m ls p r e a d s h e e td o c u m e n t s t h et r a n s l a t o ri si m p l e m e n t e dw i t h n e t f r a m e w o r k2 0a n dx s l t i tt a k e st h r e em a j o rs t 印s ,i e ,p r e p r o c e s s i n g ,m a i n p r o c e s s i n ga n dp o s t p r o c e s s i n g t h et r a n s l a t o rp r o v i d e st h eu s e r sac o n v e n i e n tw a yt ot r a n s f o r i l lt h ed o c u m e n t si n b o t hu o fa n do p e nx m lf o r m a t t h e r e f o r eu s e r sc a nc h o o s ea r b i t r a r yf o r m a t s ,t h u s t h e i ri n v e s t m e n ti nd o c u m e n t a t i o nc a nb ep r o t e c t e di nm a x i m u m m e a n w h i l e ,t h e r e s e a r c hr e s u l tc o u l db ev e r yh e l p f u lt ow i d e l ya d o p t i o no fu o f s t a n d a r d k e yw o r d s :u o f ;o f f i c eo p e nx m l ;s p r e a d s h e e t ;d o c u m e n tf o r m a tt r a n s f o r m a t i o n i i 学位论文版权使用授权书 本人完全了解北京信息科技大学关于收集、保存、使用学位论文 的规定,同意如下各项内容:按照学校要求提交学位论文的e n , 昂i j 本和 电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、 缩印、扫描、数字化或其它手段保存论文;学校有权提供目录检索以 及提供奉学位论文全文或者部分的阅览服务;学校有权按有关规定向 中国科学技术信息研究所等困家有关部门或者机构送交论文的复印 件和电子版;在不以赢利为目的的前提下,学校可以适当复制论文的 部分或全部内容用于学术活动。 学位论文作者签名:碱 2 口。7 年1 月,石日 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。( 注:论文属公开论文的,作者及导师本处不 签字) 指导教师签名:学位论文作者签名: 年月日年月日 硕士学位论文原创性声明 本人郑重声明:所呈交的论文题目为基于x m l 的电子表格文档格式 转换技术研究学位论文,是本人在导师指导下,进行研究工作所取 得的成果。尽我所知,除文中已经注明引用的内容外,本学位论文的 研究成果不包含任何他人创作的、已公开发表或者没有公开发表的作 品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体, 均已在文中以明确方式标明。本学位论文原创性声明的法律责任由本 人承担。 作者签字:如;袭 b 。7 年 f 月佑日 第一章课题背景 1 1 课题来源 第一章课题背景 电子表格处理工具作为一种直观运用行、列和单元格等概念和空间位置关系进 行表格的编辑、计算和其他处理的软件,具有广泛的用途。电子表格有很长的历史, 早在2 0 世纪6 0 年代就提出了电子表格的概念【1 1 。1 9 7 9 年,美国v i s i c o r p 公司开发 了运行于节果i i 上的v i s i c a l e l 2 1 ,这是世界上第一个电子表格软件。随后,美国l o t u s 公司于1 9 8 2 年开发了运行于d o s 下的l o t u s1 - 2 3 t 引,该软件集表格、计算和统计 图表等功能于一体,成为国际公认的电子表格软件代表作。进入w i n d o w s 时代后, 微软公司推出了o f f i c e 系列软件,其中的电子表格软件e x c e l l 4 1 ,是目日仃应用范围最 广的电子表格软件之一。在我国,d o s 时代曾经出现过c c e d t 5 】等有代表性的电子 表格软件,目前,较常见的国产电子表格软件有金山办公软件w p s t 6 】和永中o f f i c e 7 1 中的电子表格等。 长期以来,各种电子表格文档均多为二进制编码。近期,越来越多的电子表格 文档格式开始采用x m l 语言【8 1 描述。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 ( 可扩展 置标语言) 的简写。作为一种元置标语言,它通过使用一系列简单的标记描述数据, 采用它可以对文档中的内容与式样分开置标,这样就带来了文档格式的内容与格式 分离。内容与格式的分离使文档可以既考虑文档的式样,又增加了文档中的逻辑数 据的稳定性【9 1 。特别在电子表格中,内容与格式的分离,有利于文档的保存与解析, 这是由于电子表格文档相对于字处理文档来说更重视用户的私有数据。并且x m l 语言具有丌放、可扩展的特点,标记的名称、含义和结构都可以由用户根据自己的 需求来定义。 但是,文档的格式是山系统丌发人员根据系统需求定义的,格式的具体内容并 不对外公布。以微软的表处理软件e x c e l 为例,从微软公司1 9 9 0 年推出第一个版本 的e x c e l 至今历经若干个版本的演变,直到现在广泛使用的e x c e l 2 0 0 3 ,所有格式都 没有对外完全公开过。同样,国内办公软件厂商也都采用内部定义的文档格式描述 自己产品生成的文档,这些文档格式也同样都末对外公丌。 上述原冈导致文档长期以来一直都足采用各自的封闭格式,即使文档格式描述 采用了x m l 技术,也只是改善了现状,并没有解决根本的文档信息封闭问题。由 于各厂商采用均采用各自的封闭格式,导致彳i 同厂商之间的文档不能进行互相解析, 这就为办公软件的兼容带来了f 形重的问题。同时,封闭的文档格式也给文档安全带 第一章课题背景 柬了如下隐患: 首先,文档信息的可靠性无法保证。用户无从判断文档保存的信息是否就是自 己真正保存的内容;文档信息可能在软件版本更替时产生解析不一致的问题,导致 用户信息的失真,用户无法挽回其中的损失。其次,文档的兼容能力差,文档格式 的私有性导致其他软件对文档无法全部准确解析,存在解析错误的风险。再者,文 档的保存周期短,文档的生命周期受到格式制定组织及软件开发商的制约,一旦这 个组织不再支持此格式,文档的信息面临无法解析的困境。因此,文档格式走向开 放成为办公软件用户的共识。 o f f i c eo p e nx m l ( 即o p e nx m l ) o o l 是微软公司基于x m l 语言和开放打包结 构而定义的一种新的办公软件文档格式规范,该格式规范基本覆盖了其最新的办公 软件产品( 即o f f i c e 2 0 0 7 ) 的各主要办公应用【l ,主要包括字处理软件( 即w o r d ) 的w o r d p r o c e s s i n g m l ;电子表格处理软件( 即e x c e l ) 的s p r e a d s h e e t m l ;演示文稿 软件( 即p o w e r p o i n t ) 的p r e s e n t a t i o n m l 等,同时还增加了矢量图形的v m l 和 d r a w i n g m l 等。2 0 0 6 年1 2 月7 同被e c m a 批准成为其组织标准( 即e c m a 3 7 6 ) 。 2 0 0 7 年1 月5 同,e c m a 将o p e nx m l 提交给i s o ( 国际标准组织) 。2 0 0 8 年4 月, o p e nx m l 被i s o 批准成为国际标准( i s o i e c2 9 5 0 0 ) 。 o p e nx m l 的设计初衷之一是表示已有的文档,包括字处理文档、电子表格和 演示文稿等,将它们通过x m l 表达出来,并加以扩展。通过编写详尽的文档,使 之达到互操作的目的。所以o p e nx m l 基于x m l 文件格式,并同时采用了z i p 1 2 j 打包格式,z i p 包由多个部件( i t e m ) 组成,每个部件分别描述了文档的一部份, 各个部件通过关系来协同工作【1 3 1 ,这样可以多个部件并存于z i p 包中,加强了数据 的交换能力,使文档稳定可靠,这种结构在逻辑层次上很分明,利于标准同后的扩 展。 为了保证我国国产办公软件之间的兼容性,我国也制定了自主的办公软件文档 格式标准。自2 0 0 2 年开始,中文办公软件基础标准工作组开始制定中文办公软 件文档格式规范国家标准( 即u o f _ u n i f o r n lo f f i c ed o c u m e n tf o r m a t ,中文简称 “标文通”) 【1 4 】,2 0 0 7 年5 月f 式颁布实施。它是以中文办公软件需求为出发点, 在分析、借鉴国际相关标准的基础上,结合我幽国情,从实际成用出发,制定出的 针对文字处理文档、电子表格和演示文档三种主要文档格式的描述体系。u o f 采用 了w 3 cx m ls c h e m a j 作为描述语言,其格式定义的文档也是由独立的若干功能模 块组成,逻辑分明,也利于同后的扩展,并且得到了围内主流办公软件企业的普遍 支持,目前支持u o f 的产品包括永中集成o m c e 2 0 0 7 、金山w p s 、中文贰千 r e d o f f i c e 、中标普华n e o o f f i c e 等。 文档格式除了微软o p e nx m l 格式和u o f 格式之外,影n 向比较人的还有国际 2 第一章课题i 了景 标准“办公应用程序开放文档格式”( o p e nd o c u m e n tf o r m a tf o ro f f i c ea p p l i c a t i o n s , o d f ) 16 1 。o d f 基于x m l 语言和o p e n o f f i c e o r g 1 7 1 的文档格式,主要用来描述可编 辑的办公文档,包括文本文档、电子数据表格、演示文稿以及图表等。o d f 文档可 以采用单文档或多文档两种形式存储,多文档形式也基于z i p 打包压缩规范。 综上,已经有越来越多的文档格式走向开放,这就带来了对文档格式进行互相 转换的需求,以实现不同厂商之间的文档进行互相操作,以实现对文档信息的最大 共享。 由于支持o p e nx m l 格式的微软o f f i c e 软件是世界范围内普遍使用的办公软件 之一,具有广泛的用户,大量已有的文档,而u o f 格式是我国制定的具有自主产 权的中文办公软件文档格式标准,二者之间的互相转换可以实现最常用的文档信息 交换和共享,对我国的办公软件发展和文档安全也是非常重要的。 本课题的前期研究来源于国家8 6 3 项目“中文l i n u x 和办公软件相关标准与规 范”和国家电子政务标准化一期工程“中文办公软件文档格式规范”,2 0 0 7 年由微 软资助丌始了“o p e nx m l 和u o f 双向格式转换器”的开源研究项目。该项目主 要研究o p e nx m l 与u o f 格式下的文字处理、电子表格和演示文稿部分的描述, 并建立两种格式中各个功能点之i 日j 的映射,最终实现两种文档格式间相互转换。本 课题足其中的一部分,重点研究电子表格部分的分析和转换。 1 2 意义和必要性 通过对u o f 与o p e nx m l 电子表格格式之问的转换关系的研究,可以实现两 种文档格式的互联互通。目前,o p e nx m l 和o d f 这两种国际标准之间的转换【l 剐 已经基本实现,另外,u o f 与o d f 格式文字处理部分的处理转换己由北京大学计 算机学院初步实现【1 9 l 。u o f 与o p e nx m l 的字处理部分的转换也由北京航空航天 大学和北京信息工程学院等初步完成 2 0 1 ,如果现实了u o f 与o p e nx m l 其它部分 的转换,那么这三个格式上的转换将全部实现,用户可以直接操作这三种格式的文 档而无需受限于特定的办公软件,实现文档的互通【2 1 1 。如图1 1 所示。这种互联互 通首先可以使用户自山选择其所信赖的文档格式,例如我国的用户就可以将已有的 o f f i c e 文档以国家标准u o f 格式保留下来。其次,也为国内办公文档格式与国际标 准o p e nx m l 之问建立了一座可靠的桥梁,有助于推动中文办公文档格式标准的推 广实施。 3 第一章课题7 宁景 h t m l e i o 7 、i f 厂l l o f、 o p e n x m l 一一夫 v 一 、 w p s 一, z o d t o d f 1 3 相关研究工作 图1 1 文档格式之间的互联互通 文档格式转换的相关工作主要是开放的文档格式之间互相转换,主要的转换工 作包括:o d f 与h t m l l 2 2 1 ,微软2 0 0 3w o r d m l 与h t m l t 2 引,o d f 与x s l f o t 2 4 1 , o p e nx m l 和o d f ,u o f 与o d f ,u o f 与o p e n x m l ( 字处理部分) 的之问转换 等。下面重点分析一下上述后三种文档格式转换方法。 ( 1 ) o p e nx m l 和o d f 格式转换 2 0 0 6 年1 0 月,开源项目o d f a d d i n f o r - o f f i c e 2 0 0 7 推出了测试版,其主要功 能足帮助微软o f f i c e 2 0 0 7 用户打开o d f 格式文档,或将o f f i c e 文档另存为o d f 格 式。该转换器主要实现了o d f 与o p e nx m l 文档之间格式转换。 o d f 转换器的整体结构如图1 2 所示,它是一个四层结构。 4 第一章曝题背景 _ 幽12o d f 转换器的整体结构”1 第一层n e tf r a m e w o r k 提供了满足普通程序需求的粪库,并且针对x m l 立 档有根好的读写类,并且立持x s l 。 z l i b 组件提供了基本的z i p 包读写功能。 第二层o d f z i pu t i l s :提供了读写和保存z i p 包的n e t a p i 接u ,它足基r 第一层中z l i b 实现的外部组什。 o d fc o n v e r t e rl i b r a r y :核心部分,实现了o d f 与o p e nx m l 之间的般向 转换,由一系列x s l t 口“式样单组成。 o d f a d d i n l i b r a r y :实现用户接几,对皤框,消息处王甲机制等。 第一层p r o c e s s o r :宜现一系列后继处理。 a d d i n :实现插件功能。 s e t u p :用户安装程序。 第四层l a u n c h e r :通过w i n d o w se x p l o r e r 进行文档格式转换。 _ c o m m a n dl i n e t o o l :通过命令行进行文档格式转换。 ( 2 ) u o fo d f 文档格式转换 u o f o d f 转换器的u 标是实现罔家标准u o f 和吲际柘准o d f 文档格式之蚓 的烈向转换山北京大学实现。此转换群主要采用j a v a 晤舀对x m l 文档按s a x i 2 7 方式进行处理,通过对x m l 文档的多遍s a x 解析实现文档格式的转换。图】3 足 _ 】 第一章课题背景 o d f 到u o f 方向解析流程。 c o n v e r t e r 一0 d fb u o f 。一。 f i r s t c o n v h a n d l e r s e c o n d c o n v h a n d l e r t h i r c l c o n v h a n d l e rf o u r t h c o n v h a n d l e r 恢弋, s o u r c ef i l es t o r e dd a t a t e m p x m l r 笛u i t x m i 图1 30 d f 剑u o f 方向解析流样 以o d f u o f 方向的转换为例,解析过程中将格式元素分为可直接转换、可 间接转换、不可转换三类,针对不同类型元素做不同处理。第一类元素直接转换, 第二类元素通过多次解析获得必要信息进行转换,第三类元素写入扩展区。 o d f 一 u o f 转换时,c o n v e r t e r 类【j t 次调用转换h a n d l e r 进行文档格式解析。第 一步,c o n v e r t e r 类调用f i r s tc o n v h a n d l e r 对s o u r c ef i l e 文件解析,提取第二步解 析所需的信息,存储到s t o r e dd a t a ;第二步,c o n v e r t e r 类调用s e c o n dc o n v h a n d l e r 对s o u r c ef i l e 文件解析,对可直接转换的第一类元素进行直接转换,对第二类可间 接转换的元素,结合s t o r e dd a t a 中的信息进行转换,结果写入t e m p x m l ;第三步, c o n v e r t e r 类调用t h i r dc o n v h a n d l e r 对s o u r c ef i l e 文件解析,将第三类不可转换的 元素写入t e m p x m l 扩展区;第四部,c o n v e r t e r 类调用t h i r dc o n v h a n d l e r ,为 t e m p x m l 文件补充其他必要元素或属性。 以o d f u o f 方向的转换为例,解析过程中将格式元素分为可直接转换、可 间接转换、不可转换三类,针对不同类型元素做不同处理;第一类元素直接转换, 第二类元素通过多遍对x m l 文档的解析获得必要信息进行转换,第三类元素写入 扩展区。 ( 3 ) u o f 与o p e nx m l ( 字处理部分) 转换 2 0 0 7 年9 月,s o u r c e f o r g e 卜发布了开源项目“u o f o p e nx m lt r a n s l a t o r ”( 字 处理部分) 。这足一个微软支持的山北京航窄航天大学、北京信息工程学院等单位 共i 司丌发的转换器。其主要功能是帮助m i c r o s o f to f f i c ew o r d2 0 0 7 用户打开u o f 格式文档,或将m i c r o s o f to f f i c ew o r d2 0 0 7 文档另存为u o f 格式。该转换器主要 实现了u o f 与o p e nx m l 文档之i 只j 文字处理部分格式双向转换。其总体架构如图 1 4 。 6 第4 章课题背景 圈囤圈 图1 4u o f o p e nx m l 转换器体系结构 如图1 4 所示,转换器由四层结构组成: e x t e r n a ll i b r a r i e s :由n e tf r a m e w o r k 2 0 和z l i b 组成。 _ z l i b 提供一系列,i :源、跨平台的数据压缩和解压缩的函数,通过这些函数 读写z i p 压缩文档。 c o m m o nl i b r a r i e s _uof z i pu t i l s 提供基于z l i b 库的一套a p i ,用来读写以z i p 格式存储的o p e n x m l 文档。 -uofc o n v e r t e rl i b r a r y 提供执行整个双向转换的转换类库,包括双向核心转 换,以及一些必要的预处理和后继处理。 -uofa d d i nl i b r a r y 提供转换器插件形式的用户接口,包括转换进度对话框、 消息管理和转换的启动。 e n du s e rp r o g r a m s u o fw o r d x x xa d d i n 组件以插件形式为w o r d 2 0 0 7 或w o r d 2 0 0 3 添加转换 菜单,包括表示双向转换的“o p e nu o f ”和“s a v ea su o f ”;并为通用层 提供向上的接口。此组件提供文件选择对话框允许用户选择一个或多个文 件进行转换。 -uofc o m m a n dl i n et o o l s 组件提供转换器的命令行形式,通过输入一系列 参数控制转换的过程。 _uofs t a n d a l o n et r a n s l a t o r 组件提供一个独立的转换器,直接对u o f 或o p e n x m l 格式的文档进行转换;同时,组件还支持右键菜单形式的转换方式。 s e t u pp r o g r a m s :u o fw o r d 2 0 0 7 2 0 0 3s e t u p 提供w o r d 2 0 0 7 2 0 0 3 插什转换器的 安装程序。 7 删i 耋 吣 娜 p 删 l 薹 啾峨 慨 第一章课题背景 1 4 本课题拟采取的技术路线 在上述相关转换工作中,有两项工作采用了n e tf r a m e w o r k 和x s l t 技术组合 的方式,本课题拟采取的技术路线也采用了这种n e tf r a m e w o r k 和x s l t 技术组合 的方式。主要基于以下原因:首先是这种技术路线成功的实现了一系列格式i 、日j 的双 向转换,可行性有保证;其次是这个路线转换的效率比较高;再者,本课题与o p e n x m l 与u o f 字处理转换同属一个项目,采用相似的技术路线有利于整体项目的整 体开展。 本文第二章论述了格式转换的相关技术,第三章分析了o p e nx m l 与u o f 的 差异,第四章中阐述了具体的转换方法。第五章分析了转换结果。 8 第一二章相关技术背景 第二章相关技术背景 2 1 文档格式概述 广义上讲,文件格式就是文件所采用的数据编码和存储方式,包括定义文档的 编码方式和采用何种方式对用户文档中所有信息进行有效存储。早期的文档的主要 用途是保存用户的数据,不涉及文档排版,当时的文档格式是一种以文本格式为主 的二进制格式。随着个人电脑的普及,办公自动化的推进,文档处理软件同渐成为 人们日常必需的工具,并且近几年可视化操作系统的出现带来了文档编辑的可视化 要求,随之而来的其它需求也逐渐明确。因此,文档格式除了描述用户数据信息之 外,还需要记录排版信息,以往的大部分文档格式将不再适用于每种文档。 为了满足这些排版需求,排版语言是第一个出现的方案。这些排版语言是对排 版过程的描述,它反映了排版语义,使计算机能够控制文字的版而设计,如历史悠 久的r o f f1 2 8 1 和使用广泛的t e x 2 9 1 。 r o f f 是一组排版程序( 如t r o f f , n r o f f 、d i t r o f f 、g r o f f 等) 的通称。一个r o f f 排 版系统包含一个可扩展的文本格式化语言和一系列用以打印和转换为其他文本格 式的程序。过去它是u n i x 的主要文本处理系统;现在每个类u n i x 操作系统仍然 附带一个r o f f 系统作为核心软件包。尽管历史悠久,r o f f 当前仍被广泛使用,如 u n i x 系统的手册页。r o f f 在文本设备上的输出效果仍然足较好的,并且图形输出 也不差。当今最普遍的r o f f 系统g r o f f 实现了它的先前版本的所有用法和功能, 并且加入了更多的扩展,成为唯一的几乎可以在任何计算机系统上都可使用的r o f f 系统。 t e x 是在学术界广泛使用的排版系统,它提供了一套功能强大并且十分灵活的 排版语言,有多达9 0 0 多条指令,并且具有宏功能,用户可以定义新命令来扩展其 系统的功能。t e x 丌放的架构使得它能够很容易适应新的要求。例如,在没有改动 内核的情形下,t e x 很容易地实现了对p o s t s c r i p t 字体和外部图形的支持。t e x 还 是第一个能够自动生成h t m l 的字处理软件。最近,t e x 又开始增加了在不借助 其它工具( 如a d o b ed i s t i l l e r ) 的条件下生成p d f 的扩展功能。t e x 的另一个重要 的特征就是它的输出是与设备无关的。t e x 的输出文件称为d v i ( d e v i c ei n d e p e n d e n t ) 文件。d v i 文件中所有的元素,从页面设置到文本中字符的位置都是固定不能更改 的。一旦t e x 处理了一个文件,得到的d v i 文件就可以被送剑任何输出设备上如 打印机、屏幕等,并且得到相同的显现结果,与这蝼输出设备的限制没有任何关系。 p d f ( p o r t a b l ed o c u m e n tf o r m a t ) 1 3 0j 是a d o b e 系统公司丌发的一种文件格式, 9 第:章相关技术背景 旨在使文档的表示独立于应用软件、硬件和操作系统。一个p d f 文件可以描述由文 本、图形和图像构成的文档,而且完全是设备独立和分辨率独立的。p d f 是p o s t s c r i p t 语言【3 1 中定义图形元素的子集,故只需要一个非常简单的p o s t s c r i p t 解释器即可解 析p d f 文档。 d o c 格式是微软o f f i c e 软件的一种专用文档格式,是由文字处理软件w o r d 生成,它的优点是表现力强、操作简便。不过w o r d 文档向下的兼容性不太好, 用高版本w o r d 编辑的文档无法在低版本中打开,在一定程度上影响了用户的使 用。 由于这些封闭的文档格式受到专有软件及软件升级等因素的限制,文档的长期 保存、信息安全及隐私权等方面存在巨大的隐患,所以文档格式丌始逐步走向丌放。 o d f 是办公应用开放文档格式( o p e nd o c u m e n tf o r m a tf o ro f f i c ea p p l i c a t i o n s ) 的简称,是基于x m l 的文档格式,主要用来描述那些可编辑的办公文档,支持包 括文字处理、电子表格、演示文稿、制表制图和图形编辑等办公软件应用。o d f 目 前由结构化信息标准促进组织( o a s i s ) 负责维护。 o f f i c eo p e nx m l ( 即o p e nx m l ) 是微软公司基于x m l 语言和开放打包结构 而定义的一种新的办公软件文档格式,该格式基本覆盖了其最新的办公软件产品 ( 0 m c e 2 0 0 7 ) 的各主要应用。 这些丌放的文档格式有一个共同之处,就是均由x m l 语言描述。这是由于x m l 语言具有以下优点: 1 可扩充性,x m l 是一种具有可扩展性的开放的元置标语言。它提供了一些基 本的语法,但是没有定义确切的标记,用户可以定义自己的标记。这点使x m l 很适合用来定义文档格式,因为文档格式需要定义若干有特殊意义的标记, 例如标题,段落等等。 2 语法和表现形式分离,x m l 数据的表现形式是在一个单独的样式表文档中定 义的。样式表使用的是可扩展样式语言x s l 。一个样式表可以为多个x m l 文件提供统一的表现形式,反之,一个x m l 文件也可以用多个样式表以多 种形式来表示。 3 国际化,x m l 基于多个i s o 标准,x m l 文本和名字可以使用在i s o i e c1 0 6 4 6 和u n i c o d e3 0 标准中定义的多种字母、文字和书写系统。满足文档格式开放 化的需求。 4 x m l 是简化的s g m l t 32 1 ,x m l 数据、声明和语法兼容s g m l 。 越来越多的文档格式走向,f :放,这一点已经成为普遍共识。不过即使文档格式 逐渐走向开放,由于现阶段肉多种标准的存在,文档信息的共享和互操作问题仍然 存在。显然在短期之内,多种格式标准走向融合足不现实的。但从长期的角度,多 10 第一:章相笑技术背景 种格式标准走向融合是必然的1 ”1 。 2 2 文档格式转换技术概述 由于短期之内多种格式标准走向融合难以实现。那么解决这个问题的一个可行 的方法就是进行格式转换。本节主要介绍基于x m l 文档格式的两种转换方法,一 种是用传统程序,另一种是使用式样单,即x s l t 技术。 第一种方法,同前许多平台均支持x m l ,例如n e t 框架和i a v a 平台,它们均有 解析x m l 文件的接口,并且这种方法目前已有很好的实现。 在n e t 框架和j a v a 平台上处理x m l 文档有两种主流方式,分别是 s a x ( s i m p l ea p if o rx m l ) 和d o m ( d o c u m e n to b j e c tm o d e l ) 。 d o m 3 4 l 是一个与平台、语言无关的程序接口,允许丌发人员添加、编辑、移 动或删除源x m l 文档中任意位置的节点。其解析器在解析x m l 文档时在计算机 内存中生成一棵x m l 文档结构树,以层次结构组织节点或信息片断的集合来记录 x m l 文档中的各个节点,并提供了动态访问和更新x m l 文档中的各个节点内容的 接口。这个层次结构允许开发人员使用一种能够在x m l 文档中定位信息的语言, 即x p a t h 3 5 1 去寻找特定信息。x p a t h 是通过x m l 文档中的元素和属性来进行导航的, 可以精确匹配到x m l 文档中的任意节点。 d o m 解析器在解析x m l 文档时,由于要生成一棵完整的树形结构,所以需要 加载整个文档的数据,然后才能进行对各项数据的操作。但一些文档的体积较大, 解析和加载整个文档会很耗时间和内存资源,这一点为d o m 处理x m l 文档带来 了一定的局限性。 s a x 也是一组得到了广泛使用的程序接口,但其解析器并不像d o m 解析器那 样在内存中建立一个完整的文档树,而是在读取文档时激活一系列事件,后将这些 事件推给事件处理器,然后由事件处理器提供对文档各部分内容的访问,即为事件 驱动型的x m l 解析方式。 由上可知,s a x 最大的优点是内存消耗小,由于整个文档无需一次加载到内存 中,这使s a x 解析器可以解析大于系统内存的文档,这点足d o m 解析器在不使用 虚拟内存的情况下无法实现的。但其也有明显缺点,就是用户必须实现多个事件处 理程序以便能够处理所有到来的事件,同时用户还需在应用程序代码中维护这个事 件状态,而且需要跟踪解析器f 解析到了文档层次的哪个位置。而且虽然不一次将 整个文档加载到内存中,但由于用户需求,s a x 解析器通常仍然需要解析整个文档, 而目s a x 也没有内置类似于x p a t h 的导航技术支持,再加上它的单遍解析,使它 不能支持随机访问。 1 1 第一二苹相关技术背景 另一种用于转换x m l 文档的方法是使用式样单技术( x s l t ) 。x s l t 是扩展样 式表转换语言( 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 et r a n s f o r m a t i o n s ) 的简称,它用于把 x m l 文件转换成另一份x m l 文件,或者转换成另一种被浏览器所识别的诸如 h t m l 和x h t m l 文档。 x s l t 定义了一组转换规则,实现从一个输入产生一个输出。一个x s l t 式样 单由一系列模板组成,模板包含一个表达式,用于描述某些x m l 片段的形式,还 包含一个或多个元素,如果这个形式和源文档的内容匹配,那么这些元素就会被输 出。这些表达式采用x p a t h 技术帮助x s l t 在x m l 源文档中查找定位信息,通过 路径定位文档中需要表示的节点【3 引。x p a t h 本质上是与具有层次结构的x m l 数据 模型相匹配的查询语言,可以匹配x m l 文档的任何元素与属性,还包括用于基本 字符串处理、数字计算和布尔运算的工具。 通常情况下,x s l t 是通过把每个x m l 元素转换成另一个x m l 元素或h t m l 元素来完成的。通过使用x s l t ,用户可以从在源文档罩添d i l l 移除元素和属性,也 可以把元素重新排列和分类,执行测试语句,决定是隐藏还是显示元素,或者实现 其它更多的功能。在转换过程中,x s l t 调用用户自定义的转换模板,并通过x p a t h 来匹配到需要进行转换的节点位置,将转换模板应用在需要进行转换的节点上,并 输出结果文档。x s l t 处理器的实现机制如图2 1 所示。 图2 1x s l t 实现机制流程 图2 1 中,源文档s o u r c ed o c u m e n t 经过解析器( p a r s e r ) 解析后,进入x s l t 处理器中并被应用上一系列x s l t 转换式样单,进行x m l 文档格式转换。转换结 果经串行器( s e r i a l i z e r ) 串行输出到目标文档r e s u l td o c u m e n t 中。 x s l t 有诸多优点,首先其本身就是x m l 文档,它符合x m l 文档格式舰范, 结构清晰,并且与源文档和目标文档结构相似,便于转换的进行。其次因为它专门 被设计用来转换x m l 文档,在实现时足使用模板玄匹配需要进行转换的节点,这 点使转换结构清晰,也使转换代码的i 叮渎件强,便于日后维护。1 9 9 9 年1 1 月1 6 同, 12 第二章相关技术背景 x s l t 成为w 3 c 参考标准,为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 s l 规范的另外一部分是x s l f o ( 格式化对象f o r m a t t i n go b j e c t s ) 1 3 7 1 。 本文4 1 中介绍了本课题所采用的转换技术,主要为上述所述中的x s l t 和 d o m 技术。 2 3 小结 本章介绍了目前已有的一些文档格式以及文档格式与办公软件之间的关系,并 介绍了文档格式转换的一般方法,以及目前有关格式转换的项目。下一章将分析u o f 和o p e n x m l 格式,为它们之间的转换做准备。 1 3 第三章o p e nx m l 与u o f 的分析比较 第三章o p e nx m l 与u o f 的分析比较 3 1 文档描述与存储格式的对比分析 上一章讨论了与文档转换相关的技术和项目。这一章将对u o f 与o p e n x m l 两种格式中的电子表格处理部分进行深入研究,本章3 1 与3 2 分别对u o f 与 o p e n x m l 中电子表格部分描述的异同进行阐述。在文档格式转换中,分析两标准 i h j 的异同点,并建立起标准间各元素的对应关系,是进行文档转换的第一步,也是 最重要的一步,因为建立起这种元素级别的对应关系,是进行后续代码编写的先决 条件,后续代码的功能就是根据这些对应关系进行转换。 3 1 1o p e nx m l 与u o f 相同点 首先,o p e nx m l 与u o f 的基础都足建立在x m l 元置标语言基础之上,并均 采用了w 3 cs c h e m a 。除文档图片,声音等多媒体数据之外,二者均以x m l 语言 描述( 对于部分多媒体数据,o p e nx m l 与u o f 采用二进制数据格式进行描述) 。 并对各自的文件整体均采用了碰缩技术。 其次,二者的文档格式都足分模块层级描述的,并将各主要功能的描述按不同 的命名空间进行组织。如图3 1 。 再次,它们均可以满足一般的办公应用需求。目前广泛使用的办公文档有文字 处理、电子表格和演示文稿,两者都详细描述了这三种类型的文档格式信息。对于 普遍使用的编辑语义,例如,元数据、式样表、页面设置、单元格、数据、公式、 批注、图表等等,两个标准中均有对应的元素加以描述。 1 4 第二章o p e nx m l1 u o f 的分析比较 厂 、 u o f 元数据 链接集 用户数据集 式 羊集 对象集 文字处理电子表格 演示文稿 数字签名 o p e n x m l lw o r d

温馨提示

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

评论

0/150

提交评论