[发明专利]一种利用XML内存树实现多种文件兼容的方法有效
申请号: | 200710177203.8 | 申请日: | 2007-11-12 |
公开(公告)号: | CN101436185A | 公开(公告)日: | 2009-05-20 |
发明(设计)人: | 余忠华;魏超鹏;阎国龙 | 申请(专利权)人: | 北大方正集团有限公司;北京北大方正电子有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/44 |
代理公司: | 北京天悦专利代理事务所 | 代理人: | 田 明;王 瑛 |
地址: | 100871北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 利用 xml 内存 实现 多种 文件 兼容 方法 | ||
技术领域
本发明属于计算机印刷排版技术领域,具体涉及一种利用XML内存树 实现多种文件兼容的方法。
背景技术
随着计算机软件的发展,许多的软件都不可避免的进行不断的升级, 有些是一些对文件结构影响不大的变更,有些却是根本的变化。由于软件 升级过程中需要兼容早期版本制作的文件。所谓文件兼容,是指使用当前 程序能够打开第三方程序或者该程序早期版本制作的文件,以保障用户对 已有资源的可重用性。
目前的文件兼容的方法主要是:基于二进制流进行文件兼容的,通过 对二进制格式进行解析直接生成新格式的文档。如果需要对多种文件进行 兼容则需要多个解析模块,并且包含类似的转换代码。
发明内容
针对现有技术中存在的缺陷,本发明的目的是提供一种可以方便地对 多种文档结构进行兼容,同时也能够实现低版本程序对高版本程序制作的 文件的进行兼容的方法。
为达到以上目的,本发明采用的技术方案是:一种利用XML内存树实 现多种文件兼容的方法,包括如下步骤:
(1)针对当前程序中所有需要保存的数据内容定义一个完整Schema, 首先需要分析当前程序中所有需要存储到文档中的数据,按照程序中数据 的层次结构定义具有相同层次结构的Schema,以DocRoot节点作为文档的 根节点,对于程序中复杂的数据定义为Schema中的一个节点,对于程序中 简单的数据定义为Schema中的节点的属性,另外还需要结合数据的语义来 最终确定程序中的数据是作为Schema中的节点还是属性;
(2)按照步骤(1)中得到Schema定义一系列的数据结构,即对于Schema 中的每一个节点定义一个数据结构,对于所有的属性都定义到相应数据结 构中的成员变量;
(3)将需要兼容的文件转换成步骤(2)中的数据结构,形成树型数据 结构即XML内存树结构;
(4)将步骤(3)中生成的XML内存树结构导入到当前程序中,从而实 现文件的兼容。
进一步,步骤(3)中,如果要兼容Office文件,则利用微软提供的API 函数把Office文档中的各个部分转换生成步骤(2)中的各个数据结构, 同时将各个对象挂接到各自所属的父节点之下,形成一棵XML内存树结构。
进一步,步骤(3)中,如果要兼容早期版本的历史文件,则先把这种历 史文件按照自己的数据格式直接输出一个XML文件,然后通过DOM和XSLT 技术把这个XML文件转换成符合步骤(1)中要求的标准XML文件,最后再 通过步骤(2)中各个数据结构的解析器解析代码,生成对应的XML内存树 结构。
进一步,步骤(3)中,如果要实现低版本程序兼容高版本程序制作的 XML文件,则直接读入该XML文件,然后通过步骤(2)中各个数据结构的 解析器解析代码,生成对应的XML内存树结构。
进一步,步骤(4)中,将XML内存树结构导入到当前程序中的方法包括 以下步骤:
首先,针对文件的每个部分构建一个导入引擎ImportEngine,所述的 导入引擎ImportEngine一方面要导入对应节点的属性,另一方面还要完成 其子节点的导入,如果子节点是简单节点就直接导入,如果是复杂节点, 就需要调用该子节点的导入引擎;
然后,从根节点DocRoot开始调用DocRoot的导入引擎 DocRootImportEngine的Import()函数,该函数中首先完成该节点的属性 导入,然后调用ImportChildren(),实现导入引擎的递归调用;
最后,各个节点的Import()函数,主要是完成程序中与该节点对应的 对象的创建及其属性的设置,同时需要设置好新创建的对象与其父对象的 关联关系,然后就是调用ImportChildren()函数从而实现整个文档数据 的导入。
进一步,在实现低版本程序兼容高版本程序制作的文件的过程中,在 进行步骤(2)之前先将高版本程序中的当前文档导出生成一个标准XML文 件。
本发明的效果在于:采用本发明的方法,可以方便的对多种文档结构 进行兼容,也能够实现低版本程序对高版本程序制作的文件的兼容,同时 也最大程度的重用代码,对未来需要兼容新的第三方文件也具有良好的扩 展性。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北大方正集团有限公司;北京北大方正电子有限公司,未经北大方正集团有限公司;北京北大方正电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710177203.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:铝合金车轮的轮辐掏料加风叶装置
- 下一篇:多功能黑板