一种大型XML文档转换方法技术

技术编号:9618394 阅读:85 留言:0更新日期:2014-01-30 06:14
一种大型XML文档转换方法,首先设定一个大型XML文档,然后再对该文档进行分割处理,最后再利用XSLT对分割生成的多个XML目标文档进行转换处理。其中,分割处理采用的是迭代的方式,且每一次分割处理过程都类似相同,具体可表述为包含以下步骤:1)设定分割阈值;2)进行初步分割处理,得到两个非“形式良好”的XML文档;3)进行初步重构处理,得到两个新XML文档,分别是“已删除不完整数据”的XML文档和“已添加不完整数据”的XML文档;4)进行再重构处理,得到两个“形式良好”的XML文档。本发明专利技术能够有效处理大型XML文档特别大的情况,该方法准确度和精度较高、数据处理耗费时间较短、计算复杂度较低。

A large XML document conversion method

A large XML document conversion method. First, a large XML document is set up, then the document is segmented and processed. Finally, XSLT is used to convert the XML document generated by segmentation. The segmentation process is used in iterative way, and each time the segmentation process can be described as similar, specifically comprises the following steps: 1) setting the threshold; 2) preliminary segmentation, two non \good form\ XML document; 3) preliminary reconstruction, get two new XML documents, which are \deleted incomplete data\ and \the XML document has been added to the incomplete data\ XML documents; 4) re reconstruction with two \good form\ of the XML document. The invention can effectively process large XML documents, and the method has the advantages of high accuracy and accuracy, short data processing time and low computational complexity.

【技术实现步骤摘要】
一种大型XML文档转换方法
本专利技术涉及一种XML文档转换方法。
技术介绍
XML (Extensible Markup Language,可扩展标记语言)是 W3C (World Wide WebConsortium,万维网联盟)于1998年2月10日推出的用于数据传输和存储的标准,它是Internet上的不兼容系统之间进行数据交换的最常用的工具。一个拥有正确语法的XML文档被称为“形式良好的”(well-formed) XML文档,它应该满足以下5个特性:I) XML文档必须要有关闭标签。在XML中,开始标签和结束标签必须配套,例如:<age>…〈/age〉。空元素标签必须被关闭,例如:〈age/>。2) XML标签对大小写敏感。在XML中,标签〈Name〉与标签〈name〉是不同的。3) XML元素必须被正确的嵌套。在XML中,所有的标签都必须合理嵌套,例如:〈patientXname〉…〈/nameX/patient〉。在此例中,正确嵌套的意思是:〈name>元素是在〈patient〉元素内打开的,那么它必须在〈patient〉元素内关闭。4) XML文档必须有根元素。XML文档必须有一个元素是所有其他元素的父元素。该元素称为根元素。5) XML属性必须加引号。所有标签的属性值都必须使用双引号或单引号。XML文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。图1所示为一个简单的XML文档的树结构。在此树形结构中,树上的每个元素都可称为节点(node),顶层元素〈hospital〉称为“根节点”,节点之间的关系具体包括:父节点(parent)、子节点(child)、兄弟节点(sibling)、祖先节点(ancestor)和后代节点(descendant)。其中,祖先节点是指包含上下文节点的祖先节点。上下文节点的祖先节点由上下文的父节点,以及父节点的父节点,依此类推组成。如果上下文节点不是根节点,那么它的祖先节点总是包含根节点。例如,元素<age>的祖先节点包含其父节点〈patient〉,父节点的父节点〈patients〉,以及根节点〈hospital〉;元素<id>的祖先节点包含其父节点〈department〉,父节点的父节点〈departments〉,以及根节点〈hospital〉。为了实现异构信息的交换与共享,我们通常需要把一种格式的XML文档转换成另外一种格式的XML文档。目前,典型的XML文档格式转换的方法包括:I)使用 DOM (Document Object Model,文档对象类型);2)使用SAX (Simple API for XML,简单应用程序编程接口);3)使用 XSLT (XSL Transformations, XSL 转换)。其中,XSLT作为现在最流行的实现XML文档格式转换的技术之一,是在1999年11月16日被确立为W3C标准的,其功能十分强大。XSLT指XSL转换,它是XSL中最重要的部分,可将一种XML文档转换为另外一种XML文档。XSLT转换的基本思想是将XML文档视为一种树结构,转换过程就是从源文档树生成结果文档树的过程,具体实现过程如图2所示。XSLT转换通常涉及三个文档:源文档、目标文档和含有模板规则的文档。其中,含有模板规则的XSL文档也被称作是XSLT转换样式表,它的每条模板规则都包含一个模板,并对应一种模式。在转换过程中,XML源文档先是被解析成DOM树存放在内存中,然后将DOM树中的每一个节点与XSL文档中的一个模式相比较,当二者相匹配时,就会按照模板中定义的规则进行转换;否则,将继续向下匹配。如此循环,直至整个文档处理完毕。近年来,随着计算机技术和信息化的快速普及,各种信息系统收集了大量数据。这些数据经过不同的计算机系统收集、加工、处理,形成多种异构数据源。当对这些异构数据源进行处理时,首先要解决的问题就是将存储格式不同的数据进行转换,形成统一的数据格式,然后才能对其进行处 理。为此,基于XML的文档或数据转换算法就被提出。但是,传统XML数据转换算法难以适应当前海量数据转换的要求。即,如果需要处理的数据过大,特别是海量数据,那么XML文档也就很大,文档进行转换时就会消耗大量的内存、占用大量的时间,导致系统速度变慢。例如专利申请号:201210495961.5的中国专利技术专利申请,公开了一种XML解析中数据块划分方法和XML解析方法,它并没有提到内存不足问题,只是单纯的进行数据分割,也就是说,如果XML文档特别大,它是无法处理的。该方法采用的是传统的一次性分割法,最终将划分成多个数据块,并没有生成“形式良好”的XML文档,这使得各部分数据的解析无法独立进行,也使得接下来可能涉及到的快速拆分和组装等操作更加困难、复杂。该方法仅是为了提高解析效率,它在利用多线程进行并行解析之前并没有经过转换处理,更没有考虑接下来的传输处理过程。
技术实现思路
为了克服已有XML文档转换方法的无法处理XML文档特别大的情况、准确度和精度较低、数据处理耗费时间较长、计算复杂度较高的不足,本专利技术提供了一种有效处理XML文档特别大的情况、准确度和精度较高、数据处理耗费时间较短、计算复杂度较低的大型XML文档转换方法。本专利技术解决其技术问题所采用的技术方案是:一种大型XML文档转换方法,所述转换方法包括以下步骤:I)分割XML源文档,过程如下:设定一个将要进行转换的XML源文档Fs,其大小为Ts,计算机可用的最大内存为Tm,如果XML文档非常大,远远大于计算机可用的最大内存,即Ts?Tm,或者说,若满足条件:Ts ^ ηΤω, η>>1,那么在进行转换之前需要对该文档进行分割处理,其具体包括以下步骤:1.1)设定分割阈值T,T = 即,文档转换时只使用不超过一半的内存空间;1.2)进行第一次分割,分割后得到两个形式良好的XML文档:①Fsl,大小记为 Tsl,Tsl ^ T ;②Fbl,大小记为 Tbl,Tbl=Ts-Tsl ^ Ts-T ;1.3)若Tba^PTm,进行第k次分割,分割后得到两个形式良好的XML文档:①Fsk,大小记为 Tsk, Tsk ^ T ;②Fbk,大小记为 Tbk, Tbk=Tb(H)-Tsk ^ [Ts- (k-1) T] _T=Ts_kT ;1.4)若Tb(n_1} > T = $进行第η次分割,分割后得到两个形式良好的XML文档:①Fsn,大小记为 Tsn,Tsn^T;②Fbn,大小记为 Tbn, Tbn=Tb(m)-Tsn ^ [Ts- (n-1) T] _T=Ts_nT ;这时分割生成的XML文档Fbn的大小不超过所设的分割阈值,即Tbn ( T,不再满足分割条件时分割结束;2)利用XSLT转换分割生成的多个XML目标文档。进一步,所述步骤1.2)中,第一次分割的处理过程如下:( I)设定分割阈值T,T =(2)初步分割XML源文档Fs,生成两个非“形式良好的” XML文档:①Fsl,大小记为 Tsl,Tsl ~T ; ②Fbl,大小记为 Tbl, Tbl = Ts-Tsl ^ Ts-T ;(3)重构上一步生成的两个XML文档Fsl和Fb本文档来自技高网
...

【技术保护点】
一种大型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目标文档。FDA0000396671690000011.jpg,FDA0000396671690000012.jpg...

【技术特征摘要】
1.一种大型XML文档转换方法,其特征在于:所述转换方法包括以下步骤: 1)分割XML源文档,过程如下: 设定一个将要进行转换的XML源文档Fs,其大小为Ts,计算机可用的最大内存为Tm,如果XML文档非常大,远远大于计算机可用的最大内存,即Ts?Tm,或者说,若满足条件:Ts ^ ηΤω, η>>1,在进行转换之前对该文档进行分割处理,包括以下步骤: 1.0设定分割阈值Τ,τ = ¥,即,文档转换时只使用不超过一半的内存空间; 1.2)进行第一次分割,分割后得到两个形式良好的XML文档: ①Fsl,大小记为Tsl,Tsl乂 T ;②Fbl,大小记为 Tbl,Tbl=Ts-Tsl ^ Ts-T ; 1.3)若进行第k次分割,分割后得到两个形式良好的XML文档: ①Fsk,大小记为Tsk,Tsk~T;②Fbk,大小记为 Tbk,Tbk=Tb(H)-Tsk ^ [Ts-(k-l)T]-T=Ts-kT ; 1.4) ^Tb(n_t) > T = 进行第η次分割,分割后得到两个形式良好的XML文档: ①Fsn,大小记为Tsn,Tsn^ T ;②Fbn,大小记为 Tbn,Tbn=Tb(Jri)-Tsn ^ [Ts-(n-l)T]-T=Ts-nT ; 这时分割生成的XML文档Fbn的大小不超过所设的分割阈值,即Tbn ( T,不再满足分割条件时分割结束; 2)利用XSLT转换分割生成的多个XML目标文档。2.如权利要求1所述的一种大型XML文档转换方法,其特征在于:所述步骤1.2)中,第一次分割的处理过程如下: (1)设定分割阈值1',1'= ¥; (2)初步分割XML源文档Fs,生成两个非“形式良好的”XML文档: ①Fsl,大小记为Tsl,Tsl乂 T ;②Fbl,大小记为 Tbl,Tbl=Ts-Tsl ^ Ts-T ; (3)重构上一步生成的两个XML文档Fsl和Fbl,具体实现过程如下: (3....

【专利技术属性】
技术研发人员:王冬雪麻锐孟利民王辉张标标
申请(专利权)人:银江股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1