Xml数据的压缩与解压缩的方法及其装置的制作方法

文档序号:6503938阅读:395来源:国知局
专利名称:Xml数据的压缩与解压缩的方法及其装置的制作方法
背景技术
本发明涉及一种数据压缩与解压缩的方法和装置,尤其涉及一种XML(Extensible Markup Language,可扩展的升级语言)数据压缩与解压缩的方法和装置。
XML是一种文本格式,它在数据交换中正越来越普遍。越来越多的标准,例如多媒体领域、MPEG-7和TV-Anytime,都使用XML文本格式表示数据。
XML是一种冗长的格式,即XML表示数据和结构的方式导致一个相对较大的文本。因此,为了传输或者储存,需要仔细考虑数据压缩。最普通的压缩方法是Zlib,如大家都很熟悉的zip(.zip文件)和gzip(.gz文件),它是基于霍夫曼、LZ77或两者。
现有技术中,压缩装置对XML数据进行压缩,然后将压缩的XML数据传送给解压缩装置,解压缩装置对压缩的XML数据进行解压并进行分析。
图1是现有技术的一个压缩器的结构示意图。压缩器100(compressor)包括LZ77编码器102、霍夫曼编码器104和块打包器106(block wrapping),压缩器100根据Zlib格式对XML数据进行压缩。
压缩器100首先接收XML数据,LZ77编码器102根据LZ77算法对XML数据进行编码,产生一束代码字(codeword)和字符(literals)。该字符包含来自XML数据中不能压缩的字节,一个代码字可以将XML数据中以前就已经遇到过的,也就是多余的数据转换成一序列的字节。典型的代码字包含长度和间距,该长度是以前遇到过序列的长度,间距是从字节中序列的开端到当前字节的间距。
霍夫曼编码器104对代码字和字符进行霍夫曼编码,输出一序列不同长度的代码,并产生一个霍夫曼列表。
块打包器106从霍夫曼编码器104得到霍夫曼列表,将数据打包成块,每个块可以使用不同的霍夫曼列表或者甚至完全不用LZ77编码和霍夫曼编码。这里打包有3种可能性旁路压缩、使用默认的霍夫曼列表、使用常规的霍夫更列表,这3种可能性是基于如实际的压缩率和平均信息量。每个块都以一个块首(block header)开始。最后输出压缩的XML数据,并发送给解压缩装置。
图2是现有技术的一个解压缩装置中解压缩器和分析器的结构示意图。解压器(decompressor)200对压缩的XML数据进行解压,获得XML数据。解压器200包括块首解码器(block header decoding)202、霍夫曼解码器(Huffman decoding)204和LZ77解码器(LZ77decoding)206。
块首解码器202对压缩的XML数据进行解码,获得一个霍夫曼列表及不同长度的代码和/或字符,霍夫曼解码器204再对压缩的XML数据进行解码,获得代码字和字符,最后输入LZ77解码器206进行解码,获得XML数据。
分析器210带有用于XML数据的简单应用程序接口(SAX),用于对XML数据进行SAX分析,获得事件类型(Event_Type)和事件数据(Event_Data)。这里的SAX实际上是对XML数据处理的标准,它非常简单,所以非常快。SAX按序处理XML数据,所以与基于Zlib的按序解压器200非常匹配。SAX是基于事件的概念,事件是为在按序处理XML数据期间,SAX分析遇到的实体而产生的。通过出现的事件类型来指示分析器210事件的类型,这样分析器210可以相应地对事件数据进行分析处理,得到分析后的XML数据。
这里在SAX分析之前,系统只是将XML数据作为一序列的字符(即压缩器不假定数据的特性)。而在SAX分析之后,不同的XML实体例如元素和非元素(字符)就被区分开来。因此,SAX分析后的输出并不包含单个的字符,而是一序列的事件,每个事件对应一个实体,这个实体由XML数据中许多不同的字符所构成。
由于现有技术中,从一个大的压缩文件中重获特殊的数据对于接收机来说是一种负担,但在大XML数据上完成压缩比在小XML数据上压缩要好,尤其在带宽昂贵(如广播)的域中,压缩效率最佳化是非常重要的。进一步,如果目标接收机没有存储,那么不可能在一个数据库中以一个解压格式保存全部的数据,它最多将数据以压缩格式保存或者一直等到数据再次传送。所以现有技术中带有大量资源,如大存储能力,的装置不能直接对大XML文件进行操作。且带有有限资源,如小存储能力,的装置更不能以解压格式或者数据库格式储存数据,它们只能够在压缩文件的基础上重新获得数据。

发明内容
本发明针对现有技术中存在的问题,提供了一种用于XML数据压缩和解压缩方法和装置。
本发明提供了一种XML数据的压缩的方法,首先,接收XML数据,对XML数据进行编码;然后,将编码和的XML数据处理打包成数个数据块;最后,在所述数个数据块之间插入指示数据,得到压缩的XML数据,该指示数据用于识别特定的数据。
本发明提供了另一种XML数据的压缩的方法,首先,接收XML数据;然后,插入指示数据到XML数据中,该指示数据用于识别特定的数据;最后,对含有指示数据的XML数据进行压缩,以得到压缩后的XML数据。
本发明提供了一种XML数据的解压缩的方法,首先,接收压缩后的XML数据,该压缩后的XML数据含有指示数据;然后,解压缩该压缩后的XML数据,并在该解压缩过程中获得所述的指示数据;最后,根据该指示数据将解压缩后的对应的XML数据丢弃。
本发明提供了另一种XML数据的解压缩的方法,首先,解压缩该压缩后的XML数据,以得到解压缩后的XML数据;然后,从所述的解压缩后的XML数据获得一个指示数据,该指示数据用于识别特定的数据;最后,根据该指示数据将对应的解压缩后的XML数据丢弃。
本发明通过避免分析XML数据中不相关的数据,从而可以加速分析的过程,这样就使接收器的工作加速;由于只对XML数据中相关部分进行处理,所以就可以处理较大的XML数据。而所有要传输的XML信息就可以被分割成较大XML数据中的一小块数据,这要远比处理小XML数据中一大块的数据好的多,因为前者使用Zlib进行压缩比后者要好的多,所以可节约带宽。
通过参照结合附图所进行的如下描述和权力要求,本发明的其它目的和成就将是显而易见的,并对本发明也会有更为全面的理解。


本发明通过实例的方式,参照附图进行详尽的解释,其中图1是现有技术的一个压缩器的结构示意图;图2是现有技术的一个解压缩装置中解压缩器和分析器的结构示意图;图3是根据本发明的一个实施例的压缩装置的结构框图;图4是根据本发明的一个实施例的压缩方法的流程图;图5是根据本发明的一个实施例的解压缩装置的结构示意图;图6是根据本发明的一个实施例的解压缩方法的流程图;图7是根据本发明的另一个实施例的压缩装置的结构框图;图8是根据本发明的另一个实施例的压缩方法的流程图;图9是根据本发明的另一个实施例的解压缩装置的结构框图;图10是根据本发明的另一个实施例的解压缩方法的流程图;在所有的附图中,相同的参照数字表示相似的或相同的特征和功能。
具体实施例方式
图3是根据本发明一个实施例的压缩器结构框图,该压缩器100包括一个LZ77编码器102,一个霍夫曼编码器104,一个块打包器106和一个插入指示数据块装置302。
所述LZ77编码器102,用于对XML数据进行LZ77编码,还可作为接收装置,用于接收XML数据。霍夫曼编码器104,用于对经过LZ77编码的XML数据进行霍夫曼编码,同时提供霍夫曼列表。LZ77编码器102和霍夫曼编码器104可以一起构成编码装置,用于对XML数据进行编码。
块打包器106,用于根据霍夫曼列表将经过霍夫曼编码后的XML数据打包成数个数据块,每个数据块的块首有部分霍夫曼列表。
插入指示数据块装置302,用于根据霍夫曼列表将指示数据插入所述数据块之间,以得到压缩后的XML数据,该指示数据用于识别特定的数据。所述的指示数据是位于一个空数据块中。
图4是根据本发明一个实施例的压缩方法的流程图,首先接收XML数据(步骤S402),例如,接收的XML数据为
<Entry><Word>Aback</Word><Definition>saldiufhcnw</Definition></Entry>........
然后对XML数据进行编码,包括进行LZ77编码(步骤S404)和进行霍夫曼编码(步骤S406)。XML数据经过LZ77编码(步骤S404)后,得到一束代码字(codeword)和字符(literals),这里的代码字就是XML数据中重复的字符“Word>”,它的长度为5,它的距离即第一个“Word>”到下一个“Word>”之间的间隔为12。字符就是其他不能被压缩的字符,例如“Aback”等等。
对XML数据进行霍夫曼编码(步骤S406),获得不同长度的代码,同时产生霍夫曼列表。例如20个字符‘E’‘n’‘t’‘r’‘y’‘>’‘<’‘W’‘o’‘r’‘d’‘>’‘A’‘b’‘a’‘c’‘k’‘<’‘/’,经过霍夫曼编码后得到20个不同长度的代码为十六进制的6C 75 9E A4 A2 A9 6E 6C 87 9F A2 94 6E 71 92 91 93 9B 6C 5F。
根据霍夫曼列表将经过霍夫曼编码的XML数据进行块打包,打包成数个数据块(步骤S408)。例如将以字母‘A’开头的单词打包在一个数据块,将以字母‘B’开头的单词打包在下一个数据块,依次排序,得到数个数据块。
插入指示数据到块打包后的XML数据块之间(步骤S410),以得到压缩后的XML数据(步骤S412),该指示数据用于识别特定的数据,这里特定的数据是所需要的数据,例如单词‘car’。
所述的指示数据是位于一个空数据块中,且指示数据是位于一个空数据块的块首。
压缩后的XML数据如表1所示

表1从表1可以看出,数据块0包含的内容与编码后的XML数据“<Entry><Word>”相对应,即6C 75 9E A4 A2 A9 6E 6C 87 9F A2 946E;数据块1即指示数据块的块首插有指示数据‘C’,该数据块是空数据块,没有任何数据;数据块2和数据块3与数据块0、1相似。数据块4是以字母‘C’开头的单词,该数据块的内容就是与单词“Car”相对应的字符,即和前述“6C 75”等等相似的字符。
图5是根据本发明一个实施例解压缩装置的结构示意图,该装置解压缩装置包括一个解压缩器500,一个有限状态机(finite statemachine,FSM)510,一个检测指示数据块装置508和一个分析器512。
解压缩器500还包括一个块首解码器502,一个霍夫曼解码器204和一个LZ77解码器206。
块首解码器502用于对压缩后的XML数据块进行块首解码,在进行块首解码时每遇到一个新的数据块,会产生一个数据块信号,并将该信号发送给有限状态机510。块首解码器502还用于找到一个空数据块,并将该空数据块提供给检测指示数据块装置508。块首解码器502还用于产生霍夫曼列表,同时还可以作为接收装置,接收压缩后的XML数据。
霍夫曼解码器204,用于根据霍夫曼列表对经过块首解码后的压缩后的XML数据进行解码。
LZ77解码器206,用于对压缩后的XML数据进行LZ77解码,获得XML数据。该压缩后的XML数据含有指示数据。
检测指示数据块装置508,用于从块首解码器502提供来的空数据块的块首中获得指示数据,并发送给分析器512。所述解压缩器500和检测指示数据块装置508一起构成一个数据处理装置,用于解压缩该压缩后的XML数据。
分析器512根据一个特定的条件修正该指示数据的内容,产生相应的跳跃信号,并发送给有限状态机510,该特定的条件对应于分析器512的一个特定的应用,即分析器512需要的数据,例如单词‘car’。该指示数据的修正可有两种结果,一种为执行该指示数据的内容,即相应的跳跃信号为要求有限状态机510丢弃一些不相关的数据;另一种为略过该指示数据,即相应的跳跃信号内容为空。
有限状态机510根据数据块信号以及修正后的指示数据内容,即跳跃信号来丢弃该压缩后的对应的XML数据。该分析器512和有限状态机510一起构成丢弃装置,用于根据该指示数据将该压缩后的对应的XML数据丢弃。
图6是根据本发明一个实施例的解压缩方法的流程图,首先接收压缩的XML数据(步骤S602),该压缩的XML数据包含指示数据块。
然后解压缩该压缩的XML数据,包括对该压缩的XML数据进行块首解码(步骤S604),从而找到一个空数据块,并产生数据块信号,例如对该数据块1进行块首解码,就产生数据块1的数据块信号。
对指示数据块进行检测(步骤S606),如检测到指示数据块,例如对数据块1的内容进行块首解码,得知该数据块是空数据块,那么说明该数据块是指示数据块,则就从数据块1的块首获得指示数据的内容(步骤S610),例如‘C’。
如在步骤S606中未检测到指示数据块,则对下一个数据块即数据块2进行检测,得知数据块2不是指示数据块,那么就对其进行霍夫曼解码(步骤S612),再进行LZ77解码(步骤S614),获得数据块2的数据。
然后,根据指示数据的内容和分析器的内部状态,即一个特定的条件,来判断是否要产生跳跃信号(步骤S616),亦即根据一个特定的条件修正该指示数据的内容。该特定的条件是一个特定的应用,即分析器的内部状态需要的数据,例如单词‘car’,然后根据指示数据‘C’,对指示数据的内容进行修正,即产生一个跳跃信号,要求直接跳到“C”部分。
接下来,根据数据块信号和跳跃信号丢弃不相关的数据块(步骤S618),例如正在寻找单词“Car”,那么就判断出“Car”是以字母‘C’开头后的单词,出现在后面的数据块中,所以产生跳越信号,将不相关的数据块,即直到数据块3的数据块信号出现前的所有数据块2的数据(“B”部分)丢弃。由于解压缩后的XML数据不是块结构,故需根据数据块信号来控制每一个被丢弃的数据块。
同理,按照前述方法,从数据块3的块首获得指示数据内容‘E’(610),同时获得数据块4的数据(步骤S614),然后根据指示数据‘E’和正在寻找的单词“Car”进行判断(步骤S616),由于单词“Car”是在以字母‘E’开头的单词之前,所以,就不产生跳越信号,然后对相关的数据块即数据块4进行分析(步骤S620),最后获得分析后的XML数据,例如单词“Car”。
这里对解压缩后的对应的XML数据进行丢弃,是根据修正后的指示数据内容即跳跃信号来执行的。
如果在步骤S616中的判断结果为否定,说明不需要进行丢弃,则,直接对相关的数据块进行分析(步骤S620),并获得分析后的XML数据(步骤S622)。
图7是根据本发明另一个实施例的压缩装置的结构示意图,该压缩装置包括一个分析器702,一个压缩器100。
分析器702还包括一个定位装置704,用于得到一组无用的数据作为指示数据标识,同时还作为接收装置,接收XML数据;一个数据插入装置,用于在特定数量的指示数据标识后插入相应的指示数据,将剩下的指示数据标志以另一组无用的数据代替。无用的数据是下述数据之一制表标记、空格标记、回车标记等等。
压缩器100,用于对插入指示数据的XML数据进行压缩,得到压缩的XML数据。
图8是根据本发明另一个实施例的压缩方法的流程图,首先接收XML数据(步骤S802),例如XML数据是<Entry><Word>→Aback</Word><Definition>saldiufhcnw</Definition></Entry>...
<Entry><Word>→Car</Word><Definition>lzidnuvgrvgs</Definition></Entry>...
然后对XML数据进行SAX分析,找到XML数据中一组没用的字符,例如可以是一组20个‘→’(制表标记),还可以是空格标记、回车标记等等。将这一组没用的字符‘→’作为指示数据标识(步骤S806)。
将特定数量的指示数据标识‘→’,如14个,后插入指示数据(步骤S808),例如‘C’。再将剩下的‘→’用其他没用的数据替代(步骤S809),例如用空格替代。获得的XML数据为<Entry><Word>→<!--C->Aback</Word><Definition>saldiufhcnw</Definition></Entry>...
<Entry><Word>→<!--E-->Car</Word><Definition>lzidnuvgrvgs</Definition></Entry>...
这里,还可以对XML数据进行分析,以得到一组无用的数据,例如‘→’(制表标记);再将特定数量的无用数据转换为指示数据包;将所述的指示数据放入所述的指示数据包,获得的XML数据如上所述。
然后再对包含指示数据的XML数据进行压缩,也就是对包含指示数据的XML数据进行LZ77编码(步骤S810);对经过LZ77编码的XML数据进行霍夫曼编码(步骤S812);将经过霍夫曼编码的XML数据打包成数个数据块(步骤S814);最后获得压缩的XML数据(步骤S816)。
这里所述指示数据和数据块标识在XML数据被压缩以前插入XML数据。这里插入的指示数据和数据块标识对于解压缩装置是明显的,也就是解压缩装置将利用它们来忽略一些数据,这样就使解压缩装置的功能更加强大。
图9是根据本发明另一个实施例中解压缩装置的示意图,该解压缩装置包括一个解压缩器200,一个检测提取装置904,一个有限状态机510和一个分析器512。
解压缩器200,用于对压缩后的XML数据进行解压,该压缩后的XML数据含有指示数据,其中指示数据是插入于原始的XML数据中,同时解压缩器200作为接收装置,接收压缩后的XML数据。
检测提取装置904,用于在解压缩后的XML数据中找到一组指示数据标识,根据该指示数据标识获得该指示数据,并将该指示数据发送给分析器512,同时检测提取装置904产生指示数据标识信号,并该将指示数据标识信号发送给有限状态机510。解压缩器200和检测提取装置904一起可构成数据处理装置。
分析器512根据一个特定的条件修正该指示数据的内容,该特定的条件是一个特定的应用,即分析器512所需要的数据。然后对该指示数据的内容进行修正,产生相应的跳跃信号,并发送给有限状态机510。
有限状态机510根据指示数据标识信号以及修正后的指示数据内容即跳跃信号,来丢弃该压缩后的对应的XML数据。该分析器512和有限状态机510一起构成丢弃装置,用于根据该指示数据将该压缩后的对应的XML数据丢弃。
图10是根据本发明另一个实施例的解压缩方法的流程图,首先接收压缩的XML数据(步骤S1002),然后对压缩后的XML数据进行解压缩(步骤S1004),得到解压缩后的XML数据。
从所述的解压缩后的XML数据获得一个指示数据,该指示数据用于识别特定的数据,具体步骤如下对XML数据中的指示数据标识,例如“→”,进行检测(步骤S1006),如果检测到,那么就产生指示数据标识信号(步骤S1008)。
提取该数据块标识后的指示数据(步骤S1009),例如“C”。
然后,根据指示数据的内容和分析器的内部状态,即一个特定的条件,来判断是否要产生跳跃信号(步骤S1010),即为根据一个特定的条件修正该指示数据的内容。也就是根据所述指示数据“C”以及一个特定应用,即分析器的内部状态所需要的数据,判断是否产生一个跳跃信号(skip signal)。例如正在寻找单词‘car’,那么就判断出“Car”是以字母‘C’开头后的单词,出现在后面的数据块中,所以产生跳越信号,要求将不相关的数据丢弃。
接下来,如果在步骤S1010中产生一个要求丢弃数据的跳跃信号,则根据数据块信号和跳跃信号丢弃不相关的数据块(步骤S1012),即将直到下一个指示数据标识信号出现前的所有数据丢弃,并回到步骤S1006继续进行检测判断。
同理,按照前述方法在检测到下一个数据块标识时,即下一个“→”,就获得其后面的指示数据内容‘E’(步骤S1009)。然后根据所述指示数据“C”以及一个特定应用,即分析器的内部状态所需要的数据,判断是否产生一个跳跃信号(skip signal)(步骤S1010)。例如正在寻找单词‘car’,那么就判断出“Car”是以字母‘E’开头后的单词之前,所以就不产生跳越信号,然后就对相关的XML数据块进行分析(步骤S1014),最后获得分析后的XML数据(步骤S1016),例如单词‘car’。
这里对应的解压缩后的XML数据丢弃,是根据修正后的指示数据内容,即跳跃信号来执行丢弃的。
如果在步骤S1006或步骤S1010的判断结果是否定的,则直接对相关的数据块进行分析(步骤S1014),并获得分析后的XML数据(步骤S1016)。
从本发明实施例中可以看出,通过避免分析XML输入数据中不相关的数据块,从而可以加速分析的过程,这样就使在接收端的工作加速;由于只对XML数据中相关部分进行处理,那么就可以处理较大的XML数据输入;所有要传输的XML信息就可以被分割成大XML数据中的一小块数据,这要远比处理小XML数据中一大块的数据好的多,因为前者使用Zlib进行压缩比后者要好的多,所以可节约带宽。
本发明由于对较大XML输入数据进行压缩,所以可以有更好的压缩。由于解压缩装置不必等待信息的重传,所以在解压缩装置中的存储器中压缩的XML数据可以提供对信息较快的访问。
本发明插入指示数据可与现有的压缩标准/方案兼容,从而使得压缩后的XML数据与与现有的解压缩装置相兼容。
本发明将指示数据和XML数据作为一体,所以指示数据总是可以与XML数据的内容相匹配,即使在内容更新的情况下也是如此。本发明也不需要另外单独给指示数据一个传输信道,这就节约了在一个单独信道传输数据带来的多余开销,而且插入XML数据时,指示数据也是被Zlib进行压缩。
虽然经过对本发明结合具体实施例进行描述,对于在本技术领域熟练的人士,根据上文的叙述作出的许多替代、修改与变化是显而易见的。因此,当这样的替代、修改和变化落入附后的权利要求的精神和范围之内时,应该被包括在本发明中。
权利要求
1.一种XML数据的压缩方法,包括步骤a.接收XML数据;b.对XML数据进行编码;c.对编码后的XML数据进行块打包;d.插入指示数据到块打包后的XML数据块之间,以得到压缩后的XML数据,该指示数据用于识别特定的数据。
2.如权利要求1所述的方法,其中所述的指示数据是位于一个空数据块中。
3.如权利要求2所述的方法,其中所述的指示数据是位于一个空数据块的块首。
4.一种XML数据的压缩方法,包括步骤a.接收XML数据;b.插入指示数据到XML数据中,该指示数据用于识别特定的数据;c.对含有指示数据的XML数据进行压缩,以得到压缩后的XML数据。
5.如权利要求4所述的方法,其中步骤b包括步骤对所述的XML数据进行分析,以得到一组无用的数据作为指示数据标志;在特定数量的指示数据标志后插入相应的指示数据;将剩下的指示数据标志以另一组无用的数据代替。
6.如权利要求4所述的方法,其中步骤b包括步骤对所述的XML数据进行分析,以得到一组无用的数据;转换特定数量的所述无用数据为指示数据包;将所述的指示数据放入所述的指示数据包。
7.如权利要求5或6所述的方法,所述无用的数据是下述数据之一制表标记,空格标记和回车标记。
8.一种压缩后的XML数据的解压缩方法,包括步骤a.接收压缩后的XML数据,该压缩后的XML数据含有指示数据;b.解压缩该压缩后的XML数据,其中该步骤包括步骤(i)获得所述的指示数据;c.根据该指示数据将解压缩后的对应的XML数据丢弃。
9.如权利要求8所述的方法,其中所述的指示数据是位于一个空数据块中。
10.如权利要求8所述的解压缩方法,其中步骤b中的步骤i包括步骤对所述的压缩后的XML数据进行块首解码,从而找到一个空数据块;从该空数据块的块首中获得该指示数据。
11.如权利要求8所述的解压缩方法,还包括步骤根据一个特定的条件修正该指示数据的内容,其中步骤c根据修正后的指示数据内容来执行。
12.如权利要求8所述的解压缩方法,所述丢弃的XML数据是对应于所述压缩后的XML数据中特定的数据块。
13.一种压缩后的XML数据的解压缩方法,包括步骤a.解压缩该压缩后的XML数据,以得到解压缩后的XML数据;b.从所述的解压缩后的XML数据获得一个指示数据,该指示数据用于识别特定的数据;c.根据该指示数据将对应的解压缩后的XML数据丢弃。
14.如权利要求13所述的解压缩方法,其中所述的指示数据是插入于原始的XML数据中的。
15.如权利要求13所述的解压缩方法,其中步骤b包括步骤在所述的XML数据找到一个指示数据标志;根据该指示数据标志获得该指示数据。
16.如权利要求13所述的解压缩方法,还包括步骤根据一个特定的条件修正该指示数据的内容,其中步骤c根据修正后的指示数据内容来执行。
17.一种XML数据的压缩装置,包括一个接收装置,用于接收XML数据;一个编码装置,用于对XML数据进行编码;一个块打包装置,用于对编码后的XML数据进行块打包;一个插入指示数据块装置,用于插入指示数据到块打包后的XML数据之间,以得到压缩后的XML数据,该指示数据用于识别特定的数据。
18.如权利要求17所述的装置,所述的指示数据是位于一个空数据块中。
19.一种XML数据的压缩装置,包括一个接收装置,用于接收XML数据;一个插入指示数据包装置,用于将指示数据插入到XML数据中,该指示数据用于识别特定的数据;一个压缩装置,用于对插入指示数据的XML数据进行压缩,以得到压缩后的XML数据。
20.如权利要求19所述的装置,其中所述的插入指示数据包装置包括一个定位装置,用于对所述的XML数据进行分析,以得到一组无用的数据作为指示数据标志;一个数据插入装置,用于在特定数量的指示数据标志后插入相应的指示数据,并将剩下的指示数据标志以另一组无用的数据代替。
21.如权利要求20所述的装置,所述无用的数据是下述数据之一制表标记,空格标记和回车标记。
22.一种压缩后的XML数据的解压缩装置,包括一个接收装置,用于接收压缩后的XML数据,该压缩后的XML数据含有指示数据;一个数据处理装置,用于解压缩该压缩后的XML数据,并获得所述的指示数据;一个丢弃装置,用于根据该指示数据将该压缩后的对应的XML数据丢弃。
23.如权利要求22所述的装置,其中所述的指示数据是位于一个空数据块中。
24.如权利要求22所述的装置,其中所述的数据处理装置包括一个空数据块检测装置,用于对所述的压缩后的XML数据进行块首解码,从而找到一个空数据块;一个指示数据获得装置,用于从该空数据块的块首中获得该指示数据。
25.如权利要求22所述的装置,还包括一个分析器,用于根据一个特定的条件修正该指示数据的内容,其中所述的丢弃装置根据修正后的指示数据内容来执行。
26.如权利要求24所述的装置,其中所述的指示数据是插入于原始的XML数据中。
27.如权利要求24所述的装置,其中所述的指示数据是从解压缩后的XML数据中获得的。
28.如权利要求24所述的装置,所述的数据处理装置包括一个检测提取装置,用于在解压缩后的XML数据中找到一组指示数据标志,并根据该指示数据标志获得该指示数据。
全文摘要
本发明提供了一种XML数据压缩与解压缩的方法和装置,该压缩方法是将指示数据插入XML数据,该指示数据用于识别特定的数据,获得压缩后的XML数据。所述解压缩方法对压缩后的XML数据进行解压缩,所述压缩后的XML数据含有指示数据,并根据该指示数据,将该解压缩后的对应的XML数据丢弃。本发明避免了对不相关的部分XML数据进行分析,从而加速资源受限(如小存储能力)的解压缩装置的处理过程。
文档编号G06F17/30GK1902827SQ200480039441
公开日2007年1月24日 申请日期2004年12月17日 优先权日2003年12月30日
发明者A·莫里尔 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1