一种快速处理XML压缩数据的方法及其装置制造方法及图纸

技术编号:5214898 阅读:175 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种快速读取XML压缩数据的方法及其接口,其通过将XML压缩数据转换为混合数据类型对象来产生包含混合数据类型对象的消息序列,其中,所述混合数据类型采用“数据类型标记+数据存储部分”的方式。相应地,提供一种快速处理XML压缩数据的方法及其装置,其通过将XML压缩数据转换为混合数据类型对象来产生包含混合数据类型对象的消息序列;根据读取的消息序列中的混合数据类型对象来查找对应的数据处理逻辑和转换混合数据,并将转换的数据传送给查找到的数据处理逻辑。本发明专利技术通过混合数据类型和流式读取接口,对XML结构信息和某些类型的数据,直接传递读取的原始压缩数据,从而节省了字符串操作所带来的运算消耗和存储消耗。

【技术实现步骤摘要】

本专利技术涉及XML数据处理领域,尤其涉及一种快速处理XML压缩数据的方法及其 装置。
技术介绍
在现有的XML数据压缩方法中,有很多压缩方法是基于XML结构和数据特征的处 理方法,比如XGRIND、XPRESS等。在这些方法中,一方面,避免使用XML原始的容器方式 表示结构,并且在压缩后的数据中直接保存XML的结构信息,以实现对压缩数据的直接查 询;另一方面,把具有同种数据类型或具有类似特征的数据放到一起压缩,以达到较高的数 据压缩比。从这类将结构与数据分离压缩的压缩数据中读取信息时,通常的做法是首先解 压缩出原始XML数据,再使用公知的XML解析方式进行解析,相关内容可参见专利号为US 7,013,425B2 白勺美国专禾[!Data processing method, and encoder, decoderand xml parser for encoding and decoding an xml document”和公开号为 US 2004/0225754A1 的美国 专禾Ij 串i青Method ofcompressing xml data and method of decompressing compressed xml data,,。比如,在XGRIND压缩方法中,分别对表示XML结构的元数据(XML标签和属性的形 式)、枚举型属性值和一般元素/属性值采取不同的压缩方法。具体地讲,对于元数据,每 个开始标签用一个字符“T”加上一个唯一分配的元素ID编码,所有的结束标签用一个字符 “/”编码,属性名用一个字符“A”加上一个唯一分配的属性ID编码;对于枚举型属性值,采 用字典编码法对于一般元素/属件倌,采用霍夫曼编码法(参见httD://dsl. sere, iisc. ernet. in/pub/xgrindicde02. pdf)。按照现有方法对XGRIND压缩数据中的结构信息进行 读取时,程序首先需要读出表示XML结构信息的字符和编号,通过某种方式转换为开始标 签、结束标签或属性名的字符串表示,再使用公知的XML解析方法对字符串形式的XML数据 进行解析,从而分析出XML结构信息。对XML数据进行读取时,也是先解压缩成字符串表示, 然后对字符串表示的XML数据进行解析。在整个读取过程中,额外的计算机资源消耗包括 在整个读取过程中,额外的计算机资源消耗包括解压过程中将XML结构信息和XML数据处 理为符合XML形式字符串的运算消耗、解压缩后XML数据的存储消耗、XML解析方法中的字 符串比较、查找的运算消耗以及解析字符串形式的XML数据的运算消耗。这些计算机资源 消耗造成了程序运行效率的降低。再比如,在XPRESS压缩方法中,分别对标签和不同类型的数据值采取不同的压缩 方法。具体地讲,对于标签的压缩,将元素的路径编码为w.0,1.0]中的某一间隔,并使用 这些间隔之间的包含关系,对路径表达进行估计。对于数据值的压缩,具体地,对于数字 型数据值,整数则采用差分编码,浮点数则采用f32编码;对于字符串型数据值,枚举型则 采用字典编码,文本数据则采取霍夫曼编码(参见httDZZMak kaist. ac. kr/chungcw/ InterConfPapers/sigmod2003 ikmin. pdf)。按照现有方法读取 XPRESS 压缩数据时,除了 上述问题之外,还存在关于浮点数类型的数据的问题。具体地讲,如上所述,在XPRESS中,对类型为xschfloat的XML数据采用f32编码,其数据表示方式与IEEE单精度浮点数表示 相同,在压缩后的数据中记录为4个字节。按照现有方法对该类型的数据进行读取时,因为 XML khema规范规定类型为xsd: float的数据必须表示为十进制形式,所以XML数据解压 过程涉及从IEEE单精度浮点数表示到浮点数的十进制字符串表示的转换,需要经过多次 浮点数乘法和浮点数加法运算;而在应用程序内部,该XML数据一般对应于计算机中的一 个浮点数类型的数值,在大多数计算机系统中,浮点数类型数值的表示方式正是IEEE单精 度浮点数表示,因此,XML数据解析过程又涉及再把浮点数的十进制字符串转换为IEEE单 精度浮点数表示,同样需要经过多次浮点数乘法和浮点数加法运算。可以看到,整个过程中 有两次多余的数据表示方式转换,而且对常见的计算机体系架构来说,浮点数运算的开销 是相对较大的。再比如,在专利号为US 6,883,137B1的美国专利“System andmethod for schema-driven compression of extensible mark-uplanguage(XML)documents ψ,^Bi 缩过程中,首先将输入的XML流或DOM树分为结构流和数据流两个子流,然后,将结构流编 码为WBXML (WAP 二进制XML)格式,使用传统压缩算法(比如,GZIP)对数据流进行压缩。在 读取压缩数据过程中,对编码的结构流进行解码,根据SAX解析方法或者DOM解析方法产生 SAX事件或者建立DOM树来获得XML结构信息;对压缩的数据流进行解压缩来获得XML数 据。在这种方法中,结构流编码成二进制格式,不转换为字符串表示,直接把二进制格式的 结构流解析为SAX消息序列或DOM树结构。这样,可直接使用XML结构信息,而不需经过字 符串解析。但是,该方法对于数据流采用传统压缩算法进行压缩,在读取时也必须先解压为 字符串表示、再进行字符串解析,因此,仍然存在先解压再解析所带来的运算消耗。
技术实现思路
为了解决现有XML压缩数据读取方法中的上述不足,本专利技术提供一种快速处理 XML压缩数据的方法及其装置,以减少在读取XML压缩数据时的计算机资源消耗,提高程序 运行效率。为了实现以上目的,本专利技术提供一种快速读取XML压缩数据的方法,该方法通过 将XML压缩数据转换为混合数据类型对象来产生包含混合数据类型对象的消息序列,其 中,所述混合数据类型采用“数据类型标记+数据存储部分”的方式表示XML压缩数据中的 XML结构信息和XML数据。在所述混合数据类型中,数据类型标记表示各种数据类型,数据存储部分存储数 据,具体地,对于数字型数据,在数据存储部分中直接存储其原始压缩数据,对于字符串数 据,在数据存储部分中存储指向该字符串在计算机内存中的地址的指针。相应地,提供一种快速处理XML压缩数据的方法,该方法包括通过将XML压缩数 据转换为混合数据类型对象来产生包含混合数据类型对象的消息序列;根据读取的消息序 列中的混合数据类型对象来查找对应的数据处理逻辑;根据读取的消息序列中的混合类型 对象将该对象中的数据转换为所述数据处理逻辑所需的类型,并将转换的数据传送给该数 据处理逻辑。所述查找步骤包括通过传送标签名和属性名的消息中的混合数据类型对象中的 数字比较来查找对应的数据处理逻辑。所述转换步骤包括通过传送数据的消息中的混合数据类型对象来判断该消息中 的数据类型是否与所述数据处理逻辑所需的数据类型相匹配;对于混合数据类型能直接表 示的值,混合数据类型对象中保存的就是所需的数据,不进行转换;对于混合数据类型不能 表示的值,存储在混合数据类型对象中的是本文档来自技高网
...

【技术保护点】
一种快速读取XML压缩数据的方法,其特征在于,通过将XML压缩数据转换为混合数据类型对象来产生包含混合数据类型对象的消息序列,其中,所述混合数据类型采用“数据类型标记+数据存储部分”的方式表示XML压缩数据中的XML结构信息和XML数据。

【技术特征摘要】
1.一种快速读取XML压缩数据的方法,其特征在于,通过将XML压缩数据转换为混合数据类型对象来产生包含混合数据类型对象的消息 序列,其中,所述混合数据类型采用“数据类型标记+数据存储部分”的方式表示XML压缩数 据中的XML结构信息和XML数据。2.根据权利要求1所述的方法,其特征在于,在所述混合数据类型中,数据类型标记表 示各种数据类型,数据存储部分存储数据,具体地,对于数字型数据,在数据存储部分中直 接存储其原始压缩数据,对于字符串数据,在数据存储部分中存储指向该字符串在计算机 内存中的地址的指针。3.一种快速处理XML压缩数据的方法,包括通过将XML压缩数据转换为混合数据类型对象来产生包含混合数据类型对象的消息 序列;根据读取的消息序列中的混合数据类型对象来查找对应的数据处理逻辑;根据读取的消息序列中的混合类型对象将该对象的数据转换为所述数据处理逻辑所 需的数据类型,并将转换的数据传送给该数据处理逻辑,其中,所述混合数据类型采用“数据类型标记+数据存储部分”的方式表示XML压缩数 据中的XML结构信息和XML数据。4.根据权利要求3所述的方法,其特征在于,在所述混合数据类型中,数据类型标记表 示各种数据类型,数据存储部分存储数据,具体地,对于数字型数据,在数据存储部分中直 接存储其原始压缩数据,对于字符串数据,在数据存储部分中存储指向该字符串在计算机 内存中的地址的指针。5.根据权利要求3所述的方法,其特征在于,所述查找步骤包括通过传送标签名和属性名的消息中的混合数据类型对象中的数字比较来查找对应的 数据处理逻辑。6.根据权利要求3所述的方法,其特征在于,所述转换步骤包括通过传送数据的消息中的混合数据类型对象来判断该消息中的数据类型是否与所述 数据处理逻辑所需的数据类型相匹配;对于混合数据类型能直接表示的值,混合数据类型对象中保存的就是所需的数据,不 进行转换;对于混合数据类型不能表示的值,存储在混合数据类型对象中的是原始的字符串值, 将该字符串值转换为所述数据处理逻辑所需的数据类型。...

【专利技术属性】
技术研发人员:王晓磊仇睿恒张磊王毅
申请(专利权)人:北大方正集团有限公司北京大学北京北大方正技术研究院有限公司
类型:发明
国别省市:11

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

1