基于XML的可扩展文档转换系统的设计与实现.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:9 大小:266KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

基于XML的可扩展文档转换系统的设计与实现.pdf

基于XML的可扩展文档转换系统的设计与实现.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

http://www.paper.edu.cn基于XML的可扩展文档转换系统的设计与实现薛红军,杨俊,孙强北京邮电大学计算机科学与技术学院,北京(100876)E-mail:xuehongjun52@gmail.com摘要:本文给出了一种以XML为中间格式的多格式文档互相转换的解决方案。并根据此方案采用纯java开发出了扩展文档转换系统(简称EDCS),它不仅支持各种常见文档如WORD,EXCEL,PDF,HTML等格式文档到XML文档的转换,而且也支持XML文档到RTF,PDF,HTML文档的转换。此外,还具有跨平台,可移植性等优点。关键词:XML,MSWord,文档解析,文档转换中图分类号:TP3911.引言随着我国办公自动化、电子政务的飞速发展,公文文档的交换也日趋频繁。当今主流文档的格式也很多,MicrosoftOffice、WPSOffice、OpenOffice、PDF等都为广大政府和个人所用。而文档格式的不同为信息的快速传输和交换带来了极大的不变,因此如何在各种文档转之间进行转换已经成为一个急待解决的问题。本文首先介绍了可扩展文档转换系统的框架,然后分析了Word文档的格式。在此基础上提出了如何将Word文档转换为XML文档,以及将XML文档转换为HTML文档。2.系统框架设计文档转换的通用方法是在分析文件格式的基础上,定义一种中间语言或中间结构来描述文件有效语义和内容数据,并定义代表这些数据的标记规则,建立该标记规则与其它文件之间的映射关系,从而实现文件之间的转换[1][2]。由于XML元语言特性及结构化的特点,使其成为了互联网异构环境中不同类型和不同领域数据交换的开放标准。XML文档通过定义标记描述文档的结构与意义,它处理的数据具有结构化特点,容易阅读和编写。同时具有强大的可延展性和自我描述性,为实现Web文件在网络间的数据交换、处理、存储和信息搜索提供了最方便的载体。因此成为交换语言的首选[3]。因此,以XML为中间格式文档,设计系统框架如图1所示:源文档XMLDOM树Word目标文档RTFExcelPDFPPTHTMLRTFTextPDF其它其它图1可扩展文档转换系统的框架-1-http://www.paper.edu.cn在图1中,通过从底层分析源文件的二进制格式,解析出源文件的文字、图片、样式等信息,生成XMLDOM树,存储在我们定义好的XML文件中,然后可以根据需要转换成目标格式的文档。在从源文档转XML文件以及从XML转目标文档的过程中,根据不同的转换需要定义一些规则,比如从XML到HTML的转换,需要定义XSLT文档,在XSLT文档中记录了的规则包括:XML中表示表格的标签与HTML中的<table>,<tr>,<td>对应,……3.Word文档的结构Word是微软公司开发的文档编辑工具,它使用流式语言记录数据。它将文字、格式、颜色、图形图像、超文本链接、声音、动态图像等信息封装在一个文件中,用来表示文档和电子视图描述。由于它集数据与显示说明于一体,倾向于文本的编辑模式,文档格式严格、规范,非常适合人来处理,但是对于计算机来说,对文档进行内容提取、全文检索、数据挖掘、信息过滤等操作,十分困难。需要对Word文档加以分析并作相应的处理,以便后续操作。而另一方面随著WWW的普及,各种应用的展开,HTML文件成为最热门的文件格式。如果能借助XML良好的数据交换性,以XML文件为中间格式文档把Word文档转换成HTML文档或者WML格式文档,就可以在WWW浏览器或者WAP浏览器上浏览类似原来Word文件里的内容。要实现从Word文档向XML文档的转换,必须先了解Word文件的结构。MicrosoftWord是OLE2.0应用程序。其文件结构如图2所示。一个Word文件由一个MainStream,一个SummaryInformationStream,一个TableStream,一个DataStream,以及零个或多个包含在Word文档中内嵌OLE2.0对象的私有ObjectStream组成。MainStream中包含了大部分的Word二进制数据。TableStream包含了多种描述文档结构的格式数据。DataStream包含一些MainStream中难以表示的一些字符,例如描述内嵌图片的二进制数据。SummeryInformationStream包含了word文档的摘要信息。ObjectStream中存储了内嵌对象的二进制数据。MainStreamTableStreamDataStreamObjectStreamSummaryIn