[发明专利]一种大型XML文档转换方法在审
申请号: | 201310484662.6 | 申请日: | 2013-10-16 |
公开(公告)号: | CN103544260A | 公开(公告)日: | 2014-01-29 |
发明(设计)人: | 王冬雪;麻锐;孟利民;王辉;张标标 | 申请(专利权)人: | 银江股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 杭州斯可睿专利事务所有限公司 33241 | 代理人: | 王利强 |
地址: | 310012 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 大型 xml 文档 转换 方法 | ||
1.一种大型XML文档转换方法,其特征在于:所述转换方法包括以下步骤:
1)分割XML源文档,过程如下:
设定一个将要进行转换的XML源文档FS,其大小为TS,计算机可用的最大内存为Tm,如果XML文档非常大,远远大于计算机可用的最大内存,即Ts>>Tm,或者说,若满足条件:Ts≈nTm,n>>1,在进行转换之前对该文档进行分割处理,包括以下步骤:
1.1)设定分割阈值T,即,文档转换时只使用不超过一半的内存空间;
1.2)进行第一次分割,分割后得到两个形式良好的XML文档:
①Fs1,大小记为Ts1,Ts1≈T;
②Fb1,大小记为Tb1,Tb1=Ts-Ts1≈Ts-T;
1.3)若Tb(k-1)>Tm,进行第k次分割,分割后得到两个形式良好的XML文档:
①Fsk,大小记为Tsk,Tsk≈T;
②Fbk,大小记为Tbk,Tbk=Tb(k-1)-Tsk≈[Ts-(k-1)T]-T=Ts-kT;
1.4)若进行第n次分割,分割后得到两个形式良好的XML文档:
①Fsn,大小记为Tsn,Tsn≈T;
②Fbn,大小记为Tbn,Tbn=Tb(n-1)-Tsn≈[Ts-(n-1)T]-T=Ts-nT;
这时分割生成的XML文档Fbn的大小不超过所设的分割阈值,即Tbn≤T,不再满足分割条件时分割结束;
2)利用XSLT转换分割生成的多个XML目标文档。
2.如权利要求1所述的一种大型XML文档转换方法,其特征在于:所述步骤1.2)中,第一次分割的处理过程如下:
(1)设定分割阈值T,
(2)初步分割XML源文档Fs,生成两个非“形式良好的”XML文档:
①Fs1,大小记为Ts1,Ts1≈T;
②Fb1,大小记为Tb1,Tb1=Ts-Ts1≈Ts-T;
(3)重构上一步生成的两个XML文档Fs1和Fb1,具体实现过程如下:
(3.1)读取初步分割生成的XML文档Fs1;
(3.2)将指针定位到尾部;
(3.3)向前搜索结束标签的开始标记“</”,并记录其位置为L1;
(3.4)从L1开始向后搜索相应的结束标记“>”,并记录其位置为L2,此时会有两种可能:
如果能够搜到结束标记“>”,那么L2的值就是该标记的位置值;
反之,如果未能搜到结束标记“>”,这时应将指针定位到L1处,再一次执行步骤(3.3),得到新的L1值后,再执行步骤(3.4),获取新的L2值,这个新的L2值才是该情况下结束标记的真正位置;
(3.5)将因分割而导致的不完整数据从Fs1的尾部移到Fb1的首部;
(3.6)获取因分割而缺失的所有祖先节点的标签名字,具体步骤如下:
(3.6.1)设定读取标志flag=True,当读取的值的长度大小或等于0时,flag=False;
(3.6.2)读取步骤(3.5)得到的已删除不完整数据的XML文档Fs1,将每个节点标签名字,空标签名字除外,添加到列表中;
(3.6.3)统计列表中的不同元素及其个数,根据形式良好的XML文档的开始标签和结束标签应配套,空标签要关闭的原理,个数为奇数的元素,第一个元素除外,即为因分割而缺失的祖先节点标签名字,将这些标签名字放入另一个列表中,获取这些节点标签名字时,应保持其在列表中的原有顺序不变;
(3.7)将步骤(3.5)得到的两个XML文档Fs1和Fb1构造成形式良好的XML文档:
(3.7.1)把步骤(3.6.3)得到的列表中的元素用作结束标签倒序地添加到已删除不完整数据的XML文档Fs1的尾部;
(3.7.2)把步骤(3.6.3)得到的列表中的元素,第一个元素除外,用作开始标签正序地添加到已添加不完整数据的XML文档Fb1的首部;
(3.7.3)将步骤(3.6.3)得到的列表中的第一个元素,即声明标签名字,用作开始标签添加到上一步得到的XML文档Fb1的首部,此时,第一次分割就已全部处理完毕。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于银江股份有限公司,未经银江股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310484662.6/1.html,转载请声明来源钻瓜专利网。