CN102214170A - 一种xml数据压缩和解压缩方法及系统 - Google Patents

一种xml数据压缩和解压缩方法及系统 Download PDF

Info

Publication number
CN102214170A
CN102214170A CN201010141585.0A CN201010141585A CN102214170A CN 102214170 A CN102214170 A CN 102214170A CN 201010141585 A CN201010141585 A CN 201010141585A CN 102214170 A CN102214170 A CN 102214170A
Authority
CN
China
Prior art keywords
data
schema
xml
node
xml data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201010141585.0A
Other languages
English (en)
Other versions
CN102214170B (zh
Inventor
仇睿恒
胡薇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New Founder Holdings Development Co ltd
Peking University
Peking University Founder Research and Development Center
Original Assignee
BEIDA FANGZHENG TECHN INST Co Ltd BEIJING
Peking University
Peking University Founder Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIDA FANGZHENG TECHN INST Co Ltd BEIJING, Peking University, Peking University Founder Group Co Ltd filed Critical BEIDA FANGZHENG TECHN INST Co Ltd BEIJING
Priority to CN201010141585.0A priority Critical patent/CN102214170B/zh
Publication of CN102214170A publication Critical patent/CN102214170A/zh
Application granted granted Critical
Publication of CN102214170B publication Critical patent/CN102214170B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种XML数据压缩方法。该方法包括:对XMLschema进行优化,以去除冗余结构信息和节点间的间接使用,并存储优化后的schema;利用优化后的schema提取以所述schema为规范的XML数据的结构信息部分;按照优化后的schema节点将所述XML数据的数据部分分成多个数据块;和分别使用通用压缩方法对结构信息部分和数据块进行压缩,并将压缩结果输出到文件。相应地,提供了一种解压缩方法及其压缩系统和解压缩系统。本发明通过简化XMLschema,获得了最小化的结构信息,改进了数据的分组存储策略,从而提高了压缩率。此外,还对微型数据块的存储进行了优化,从而进一步提高了压缩率。

Description

一种XML数据压缩和解压缩方法及系统
技术领域
本发明涉及XML数据处理领域,尤其涉及一种XML数据压缩和解压缩方法及系统。
背景技术
XML(可扩展标记语言)作为一种跨平台的标准数据交换格式而广泛应用于web服务、数据交换和存储等方面,是当前处理结构化文档信息的有力工具。由于XML文档中包含大量重复出现的标签和结构信息,所以在XML文档中存在大量数据冗余,因此在很多应用中需要对其进行压缩。常用的XML压缩方法有XMILL、XMLPPM、XWRT等等。
XMILL压缩方法首先通过语法解析器SAX将XML结构信息从XML文档中分离出来,然后根据不同的语义将XML文档数据项重组到不同的容器中,最后使用GZip对各个容器分别进行压缩,从而生成压缩的XML文档。关于XMILL压缩方法的具体内容可参见“XMill:AnEfficient Compressor for XML Data”,Proc.of the ACM SIGMODInternational Conference on Management of Data,2000:153-164。
XMLPPM压缩方法首先采用MHM(Multiplexed HierarchicalModeling)技术将XML文档中的标签、属性和数据项按照四种模型进行分类,然后采用PPM(Prediction by Partial Match)编码方式对各个模型中的数据进行压缩编码。关于XMLPPM压缩方法的具体内容可参见“Compressing XML with Multiplexed Hierarchical PPMModels”,Proc.of the IEEE Data Compression Conference,2000:163-172。
XWRT压缩方法类似于XMill,采取了类似的语义分组策略。但是,它用更短的代码代替了频繁使用的单词,创建了一个半动态的词典,并利用zlib(默认)、LZMA、PPMVC或lpaq6作为后端压缩器。关于XWRT压缩方法的具体内容可参见“Effective Asymmetric XMLCompression.Software:Practice and Experience,August 2008,Volume 38,Number 10,1027-1047”。
另外,在将XML schema作为其核心DDL(DescriptionDefinition Language)的基础语言的MPEG-7中提出了一种基于Schema的XML压缩方法。这种压缩方法利用Schema中的结构信息生成规范的语法树,进而生成用于压缩和解压缩的自动机。关于MPEG-7的具体内容可参见“″MPEG-7 Binary Format for XML Data,″dcc,pp.0467,Data Compression Conference(DCC’02),2002”。
上述这些压缩方法虽然能够较好地对一些特定的XML文件进行压缩,但是由于这些压缩方法主要都是针对XML文档中规整部分进行处理并且大部分都是采用将数据按节点分块压缩的方式,而没有考虑XML文档对应的XML树中的不规则结构和存在的微型数据块(即,其大小很小的数据块)。因此,当XML文档结构比较复杂时,很可能会存在大量的微型数据块,而现有的这些压缩方法对于这样的XML文档的压缩率往往都不高。
发明内容
为了解决上述问题,本发明提出了一种新颖的XML数据压缩和解压缩方法及系统,以实现适用性更强、压缩率更高的XML压缩方法。
本发明提供的XML数据压缩方法包括以下步骤:对XML schema进行优化,以去除冗余结构信息和节点间的间接使用,并存储优化后的schema;利用优化后的schema提取以所述schema为规范的XML数据的结构信息部分;按照优化后的schema节点将所述XML数据的数据部分分成多个数据块;和分别使用通用压缩方法对结构信息部分和数据块进行压缩,并将压缩结果输出到文件。
优选地,在按照优化后的schema节点将所述XML数据的数据部分分成多个数据块之后,将小于给定阈值的微型数据块合并。
相应地,提供一种对通过上述压缩方法而得到的压缩XML数据进行解压的方法,包括以下步骤:对存储的schema进行解析;对压缩的结构信息部分进行解压;对压缩的数据部分进行解压;建立schema节点和解压后的数据之间的绑定关系;根据解析的schema和解压的结构信息还原XML数据的结构,并从对应的schema节点的数据块中获取相应的数据,生成XML文档。
为了实现以上压缩和解压缩方法,还分别提供了相应的XML数据压缩系统和解压缩系统。压缩系统包括输入单元、优化单元、存储单元、结构单元、数据单元和压缩输出单元。解压缩系统包括schema解析单元、结构解压单元、数据解压单元、还原单元和解压输出单元。
本发明通过去除冗余结构信息和节点间的间接引用来对XMLschema进行简化,然后利用简化后的schema分离出以该schema为规范的XML数据的结构信息部分和数据部分,可得到最小化的结构信息和优化分组的数据块,从而提高了压缩率。此外,通过合并微型数据块,进一步提高了压缩效果。
附图说明
图1是根据本发明的第一实施例的XML数据压缩方法的流程图;
图2是对根据图1所示压缩方法得到的压缩XML数据进行解压的方法的流程图;
图3a和图3b分别是根据本发明的第一实施例的XML数据压缩系统和解压缩系统的框图;
图4是根据本发明的第二实施例的XML数据压缩方法的流程图;
图5是根据本发明的第二实施例的XML数据压缩系统的框图;
图6a和图6b分别是第一实例中所使用的原始XML schema结构图和根据本发明方法优化后的schema结构图;
图7a和图7b分别是第二实例中所使用的原始XML schema结构图和根据本发明方法优化后的schema结构图。
具体实施方式
以下将结合附图和实施例对本发明进行详细描述。
(第一实施例)
图1是根据本发明的第一实施例的XML数据压缩方法的流程图。参照图1,该XML数据压缩方法包括以下步骤:
步骤S100、对XML schema进行优化,以去除冗余结构信息和节点间的间接使用,并存储优化后的schema;
步骤S101、利用优化后的schema提取以所述schema为规范的XML数据的结构信息部分;
步骤S102、按照优化后的schema节点将所述XML数据的数据部分分成多个数据块;和
步骤S103、分别使用通用压缩方法对结构信息部分和数据块进行压缩,并将压缩结果输出到文件。
具体地,在步骤S100中,可按照以下优化原则对XML schema进行优化:
1、对于以引用、扩展和限定等方式连接到另一个节点的节点,直接将该节点连接到所述另一个节点,这里,这些间接使用的节点的类型包括类型(Type)、引用(Ref)、组(Group)、扩展(Extension)、限定(Restriction);
2、对于其所有子节点都是可选节点的序列指示器,将该序列指示器变为可选;
3、对于没有子节点的序列指示器,删除该序列指示器;
4、对于只有一个子节点而且这个子节点也是序列指示器的序列指示器,将作为其子节点的序列指示器和该序列指示器进行合并。
按照以上优化原则对schema进行简化之后,为保留的每个schema节点分配一个编号。
经过上述优化处理之后,删去了schema中的Type、SimpleType、ComplexType、AttributeGroup、Group等类型的节点,仅保留了Sequence、Choice、All等类型的节点信息,从而得到一个结构信息极为简化的schema。
在步骤S101中提取XML数据的结构信息时,对于XML数据的每个节点,仅记录其对应的schema节点中实际出现的子节点的出现情况及出现次数。具体地,对于minOccurs=0且maxOccurs>0的节点,需要记录其是否出现的信息,如果该节点出现的话,还需记录其出现次数。对于minOccurs>0的节点,如果minOccurs不等于maxOccurs,需要记录其出现次数。
从图1所示流程图可看出,本发明通过去除schema中的冗余结构信息和节点间的间接引用来实现schema的简化,继而通过这种简化的schema,获得了以该schema为规范的XML数据的最小化的结构信息和优化分组的数据块,从而提高了压缩率。
此外,对于以所述schema为规范的其它待压缩XML数据,可以直接使用存储的优化后的schema对该XML数据进行压缩,从而可节省用于再次解析和优化schema的时间,提高处理效率。
图2是对通过图1所示压缩方法得到的压缩XML数据进行解压的方法的流程图。如图2所示,解压方法包括以下步骤:
步骤S200、对存储的schema进行解析;
步骤S201、对压缩的结构信息部分进行解压;
步骤S202、对压缩的数据部分进行解压;
步骤S203、建立schema节点和解压后的数据之间的绑定关系;
步骤S204、根据解析的schema和解压的结构信息还原XML数据的结构,并从对应的schema节点的数据块中获取相应的数据,生成XML文档。
为了实现以上压缩方法,本发明提供一种XML数据压缩系统。参照图3a,该XML数据压缩系统包括:
输入单元301,其用于将待处理的XML数据的schema输入给优化单元302,并将待处理的XML数据输入给结构单元304和数据单元305;
优化单元302,其用于对XML schema进行优化,以去除冗余结构信息和节点间的间接使用,并将优化后的schema存储到存储单元303;
存储单元303,其用于存储从优化单元302接收的优化后的schema;
结构单元304,其用于利用优化后的schema提取从输入单元301接收的XML数据的结构信息部分,并将提取的结构信息部分发送给压缩输出单元306;
数据单元305,其用于按照优化后的schema节点将从输入单元301接收的XML数据的数据部分分成多个数据块,并将这些数据块发送给压缩输出单元306;和
压缩输出单元306,其用于分别使用通用压缩方法对提取的结构信息部分和数据块进行压缩,并将压缩结果输出到文件。
另外,为了实现以上解压缩方法,本发明提供一种XML解压缩系统。参照图3b,该XML解压缩系统包括:
schema解析单元307,其用于获取优化后的schema,并对其进行解析;
结构解压单元308,其用于获取压缩的结构信息部分,并对其进行解压;
数据解压单元309,其用于获取压缩的数据部分,并对其进行解压;
还原单元310,其用于建立schema节点和解压后的数据之间的绑定关系;根据解析的schema和解压的结构信息还原XML数据的结构,并从对应的schema节点的数据块中获取相应的数据,生成XML文档;和
解压输出单元311,其用于输出还原单元310生成的XML文档。
图3a和图3b所示单元的具体操作与上述方法中的相应步骤相同,因此,省略其详细描述。
(第二实施例)
图4是根据本发明的第二实施例的XML数据压缩方法的流程图。从图4和图1对比可看出,第二实施例与第二实施例的不同之处在于,在步骤S402中,在按照优化后的schema节点将所述XML数据的数据部分分成多个数据块之后,还要将小于给定阈值的微型数据块合并。通过合并,可优化微型数据块的存储,进一步提高了压缩率。
图5是实现图4所示方法的XML数据压缩系统的框图。从图5和图3a对比可看出,其不同之处在于,增加了合并单元507,其用于合并小于给定阈值的微型数据块,并将合并的微型数据块发送给压缩输出单元506。
第二实施例的解压缩方法和系统与第一实施例相同,因此,省略其描述。
以上参照图1至图5对本发明提出的方法和系统进行了概括性描述,以下将结合具体的实例对本发明的具体实现进行说明。
首先,需要指出的是,在具体实现中,可采取以下两种方式来记录子节点的出现情况和出现次数。
(1)第一种编码方式
采用表1所示前缀编码的方式对实际出现的子节点的编号及出现次数进行二进制编码。
表1
  前缀码位数   前缀码   数据位数   总长度
  1   0   7   8
  2   10   14   16
  3   110   21   24
  4   1110   28   32
比如,节点A有四个可选子节点,若出现信息是“00000011”,则表示第3个节点出现或被选择。
具体地,这种编码方式可用于choice指示器,表示实际被选择的子节点的编号,而且还可用于写入出现次数和向数据信息中写入数字。这种编码方式的目标是为了缩短数字的长度,因为如果不进行编码,则一个数字占4字节,编码后一个数字的长度为1-4字节。
(2)第二编码方式
将可选子节点依次排列,根据子节点的出现情况,依次使用1位来标识,“1”表示出现,“0”表示未出现,末尾补0保证字节对齐,比如8字节对齐。
比如,节点A有四个可选子节点,若出现信息是“10110000”,则表示第1、3、4个可选子节点出现或被选择,而第2个子节点未出现。
具体地,这种编码方式可用于element节点或sequence节点,表示其实际出现的子节点的出现情况。
(第一实例)
在第一实例中,XML schema定义如下:
<?xml version=″1.0″encoding=″UTF-8″?>
<xs:schema xmlns:xs=″http://www.w3.org/2001/XMLSchema″>
<xs:element name=″root″type=″t1″/>
<xs:complexType name=″t1″>
<xs:sequence maxOccurs=″3″>
<xs:choice maxOccurs=″2″>
<xs:element name=″e1″type=″xs:int″minOccurs=″0″/>
<xs:element name=″e2″type=″xs:string″minOccurs=″0″/>
<xs:element name=″e3″type=″xs:int″minOccurs=″0″/>
</xs:choice>
<xs:sequence/>
</xs:sequence>
</xs:complexType>
</xs:schema>
在该schema中,存在一个包含choice指示器的sequence指示器和一个没有子节点的sequence指示器,在choice指示器中,其三个子节点e1、e2和e3均为可选节点。
以以上schema为规范的XML数据示例如下:
<?xml version=″1.0″encoding=″UTF-8″?>
<root>
<e2>Mike</e2>
<e3>2</e3>
<e2>Adam</e2>
<e1>3</e1>
</root>
对于该XML数据,本发明的压缩处理过程如下:
步骤1、优化XML schema,并存储优化后的schema。
图6a是原始schema结构,图6b是优化后的schema结构。从图6a和图6b可看出,在优化schema的过程中,删除了一个没有子节点的sequcence指示器,并将其所有子节点(即,e1、e2和e3)均为可选节点的choice指示器和其父节点sequence指示器合并为choice指示器,这里,合并成choice指示器后,其maxOccures变为6。因此,在优化后的schema中,仅保留了root、choice指示器、e1、e2、e3这5个节点信息,并为这5个节点分配编号1、2、3、4、5,其中,choice指示器是root节点的子节点,e1、e2、e3是choice指示器的子节点。通过以上处理,去除了冗余结构信息和节点间的间接引用,获得了简化的schema信息,从而使得能够以最小的信息量提取以该schema为规范的XML数据的结构信息。
接着,存储优化后的schema。在本实例中,利用工具BinarySchemaGenerator将优化后的schema信息存储在一个bsg文件中。对于以该schema为规范的所有XML数据,均可使用存储的该bsg文件对其进行压缩,而不必每次重新解析和优化schema,从而省去了解析和优化schema的时间,提高了处理效率。
步骤2、利用bsg文件提取以上显示的XML数据的结构信息部分。
在该实例中,采用第一种编码方式对子节点的出现情况及出现次数进行编码,优化后的结构信息如表2所示。
表2
 1  00000100
 2  00000010 0000001100000010 00000001
 3
 4
 5
在表2中,编号1、2、3、4、5分别表示root、choice指示器、e1、e2、e3这5个schema节点。在表示root节点的编号“1”中,“00000100”表示其子节点,即,choice指示器出现了4次。在表示choice指示器的编号“2”中,第一行第一列编码“00000010”表示第一次选择e2,第一行第二列编码“00000011”表示第二次选择e3,第二行第一列编码“00000010”表示第三次选择e2,第二行第二列编码“00000001”表示第四次选择e1。e1、e2和e3没有子节点,所以它们的结构信息为空。
从表2可看出,利用简化后的schema提取XML数据的结构信息,去除了冗余结构信息和节点间的间接引用,从而使得XML数据的结构信息表示最小化。
步骤3、利用bsg文件将以上显示的XML数据的数据部分分成多个数据块。具体地,将XML数据中的数据按照表2所示的schema节点分组,分组结果如表3所示。
表3
 3  3
 4  MikeAdam
 5  2
在表3中,如上所述,编号3、4、5分别表示节点e1、e2和e3,每个节点对应一个数据块。
步骤4、将小于给定阈值(实验测得阈值优选为4k)的数据块按照其schema节点的数据类型进行合并,即,将e1和e3对应的数据都放入int容器中,而将e2对应的数据放入string容器中。
步骤5、使用通用压缩方法对处理后的结构信息部分和数据部分进行压缩,并将压缩结果输出到文件。
对于通过上述方法得到的压缩数据,解压过程如下:
步骤1、解析bsg文件;
步骤2、解压结构信息部分;
步骤3、解压数据部分;
步骤4、将各数据容器中的数据重新分配给其对应的schema节点;
步骤5、根据bsg文件和解压的结构信息重新展开XML结构,并从对应的schema节点的数据块中读取需要的数据,生成XML文档。
(第二实例)
在该实例中,XML schema定义如下:
<?xml version=″1.0″encoding=″UTF-8″?>
<xs:schema xmlns:xs=″http://www.w3.org/2001/XMLSchema″>
<xs:element name=″entry″type=″t1″/>
<xs:complexType name=″t1″>
<xs:sequence maxOccurs=″unbounded″>
<xs:element name=″e1″minOccurs=″0″maxOccurs=″unbounded″/>
<xs:element name=″e2″minOccurs=″0″maxOccurs=″unbounded″/>
<xs:element name=″e3″minOccurs=″0″maxOccurs=″unbounded″/>
</xs:sequence>
</xs:complexType>
</xs:schema>
以以上schema为规范的XML数据示例如下:
<entry>
<e1>1</e1>
<e1>2</e1>
<e1>3</e1>
<e3>1</e3>
<e3>2</e3>
<e1>1</e1>
<e1>2</e1>
<e1>3</e1>
<e2>1</e2>
<e2>2</e2>
<e2>1</e2>
<e2>2</e2>
<e2>3</e2>
<e3>1</e3>
<e3>2</e3>
</entry>
对于该XML数据,本发明的压缩处理过程与第一实施例基本相同,不同之处在于,采用第二种编码方式对子节点的出现情况进行编码,而对于出现次数依然采取二进制编码方式。
图7a是原始schema结构,图7b是优化后的schema结构。从图7a和图7b可看出,在优化schema的过程中,将三个子节点均为可选节点的sequence节点变为可选。
按照bsg文件提取的最小化结构信息如表4所示。
表4
 1  00000011
 2  10100000 00000011 0000001011000000 00000011 0000001001100000 00000011 00000010
 3
 4
 5
在表4中,在表示entry节点的编号1中,“00000011”表示其子节点,即,sequence节点共出现3次。在表示sequence节点的编号2中,第一行第一列“10100000”表示第一个sequence中出现了节点e1和e3,第一行第二列“00000011”表示e1出现了3次,第一行第三列“00000010”表示e3出现了2次;第二行第一列“11000000”表示第二个sequence中出现了节点e1和e2,第二行第二列“00000011”表示e1出现了3次,e2出现了2次;第三行第一列“01100000”表示第三个sequence中出现了e2和e3,第三行第二列“00000011”表示e2出现了3次,第三行第三列“00000010”表示e3出现了2次。
将上述XML数据的数据部分按schema节点分组的结果如表5所示。
表5
  3   123123
  4   12123
  5   1212
由于e1、e2和e3对应的schema节点的数据类型均为int且其数据块大小均小于4k,所以将它们的数据全部放入int容器中。
以下,将通过对来自多个不同领域真实应用的且特征、大小各异的XML数据进行测试来说明本发明方法相比于常用的XML压缩方法的技术效果,如表6和表7所示。在表6和表7中,所有数据表示文件数据大小,均以字节为单位。
表6
actors    ebay        factbook    kgml          lineitem     part        reed
原始数据    13,480    35,453      4,222,646   3,655,418     32,295,596   6,299,374   283,547
本发明方法  1,600     10,999      498,114     112,045       1,109,816    296,418     12,680
xmlppm      1,821     10,334      507,022     148,627       1,029,329    280,963     12,630
xmill       1,896     11,077      700,134                   1,513,873    431,664     13,007
xwrt        2,185     12,350      527,385     117,816       1,116,177    297,623     12,651
表7
sigmod    weblog      xmark        yahoo      metadata     chinesenovel   uof
原始数据    478,133   2,648,284   118,552,732  25,312     3,811,423    2,195,488      761,225
本发明方法  51,802    51,808      20,918,343   5,624      227,386      682,688        28,897
xmlppm      47,569    67,127      18,877,970   5,258                   584,122        32,201
xmill       57,603    74,536      33,787,000   5,997      366,208      948,164        33,621
xwrt        53,889    57,401      21,183,387   6,996      313,509      953,468        36,026
从表6和表7可看出,本发明提出的压缩方法比现有的压缩方法xmill、xmlppm。xwrt相比,对于大部分xml数据可获得更高的压缩率。即使是和压缩率相对比较高的xwrt相比,本发明提出的压缩方法的压缩率比xwrt的压缩率通常也能高出10%左右。
在以上测试数据中,本发明方法在压缩分离后的结构和数据时采用的是zlib压缩,当采用ppm方法进行压缩时,压缩率要优于xmlppm方法。
以上已参照实施例对本发明进行了详细描述,但是,应该理解,本发明并不限于以上所公开的特定实施例,任何本领域的技术人员在此基础之上容易想到的修改和变型都应包括在本发明的保护范围内。

Claims (16)

1.一种XML数据压缩方法,包括以下步骤:
对XML schema进行优化,以去除冗余结构信息和节点间的间接使用,并存储优化后的schema;
利用优化后的schema提取以所述schema为规范的XML数据的结构信息部分;
按照优化后的schema节点将所述XML数据的数据部分分成多个数据块;和
分别使用通用压缩方法对结构信息部分和数据块进行压缩,并将压缩结果输出到文件。
2.根据权利要求1所述的XML数据压缩方法,其特征在于,所述对XML schema进行优化的步骤包括以下步骤:
对于以引用、扩展和限定等方式连接到另一个节点的节点,直接将该节点连接到所述另一个节点;
对于其所有子节点都是可选节点的序列指示器,将该序列指示器变为可选;
对于没有子节点的序列指示器,删除该序列指示器;
对于只有一个子节点而且这个子节点也是序列指示器的序列指示器,将作为其子节点的序列指示器和该序列指示器进行合并;和
为经过上述步骤优化后的每个schema节点分配一个编号。
3.根据权利要求2所述的XML数据压缩方法,其特征在于,所述提取XML数据的结构信息部分的步骤包括以下步骤:
对于所述XML数据的每个节点,仅记录其对应的schema节点中实际出现的子节点的出现情况及出现次数。
4.根据权利要求3所述的XML数据压缩方法,其特征在于,采用前缀编码的方式对实际出现的子节点的编号和出现次数进行二进制编码。
5.根据权利要求3所述的XML数据压缩方法,其特征在于,以下述方式记录子节点的出现情况:
将子节点依次排列,根据子节点的出现情况,依次使用1位来标识,“1”表示出现,“0”表示未出现,末尾补0保证字节对齐。
6.根据权利要求1所述的XML数据压缩方法,其特征在于,在按照优化后的schema节点将所述XML数据的数据部分分成多个数据块之后,将小于给定阈值的微型数据块合并。
7.根据权利要求1所述的XML数据压缩方法,其特征在于,对于以所述schema为规范的其它待压缩XML数据,直接使用存储的优化后的schema对该XML数据进行压缩。
8.一种对通过权利要求1-7中的任何一个所述的XML压缩方法而得到的XML压缩数据进行解压的方法,包括以下步骤:
对存储的schema进行解析;
对压缩的结构信息部分进行解压;
对压缩的数据部分进行解压;
建立schema节点和解压后的数据之间的绑定关系;
根据schema和解压的结构信息还原XML数据的结构,并从对应的schema节点的数据块中获取相应的数据,生成XML文档。
9.一种XML数据压缩系统,包括:
输入单元,其用于将待处理的XML数据的schema输入给优化单元,并将待处理的XML数据输入给结构单元和数据单元;
优化单元,其用于对XML schema进行优化,以去除冗余结构信息和节点间的间接使用,并将优化后的schema存储到存储单元;
存储单元,其用于存储从优化单元接收的优化后的schema;
结构单元,其用于利用优化后的schema提取从输入单元接收的XML数据的结构信息部分,并将提取的结构信息部分发送给压缩输出单元;
数据单元,其用于按照优化后的schema节点将从输入单元接收的XML数据的数据部分分成多个数据块,并将这些数据块发送给压缩输出单元;和
压缩输出单元,其用于分别使用通用压缩方法对提取的结构信息部分和数据块进行压缩,并将压缩结果输出到文件。
10.根据权利要求9所述的XML数据压缩系统,其特征在于,所述优化单元执行以下优化XML schema的步骤:
对于以引用、扩展和限定等方式连接到另一个节点的节点,直接将该节点连接到所述另一个节点;
对于其所有子节点都是可选节点的序列指示器,将该序列指示器变为可选;
对于没有子节点的序列指示器,删除该序列指示器;
对于只有一个子节点而且这个子节点也是序列指示器的序列指示器,将作为其子节点的序列指示器和该序列指示器进行合并;和
为经过上述步骤优化后的每个schema节点分配一个编号。
11.根据权利要求10所述的XML数据压缩系统,其特征在于,所述结构单元在执行提取XML数据的结构信息的步骤时,对于所述XML数据的每个节点,仅记录其对应的schema节点中实际出现的子节点的出现情况及出现次数。
12.根据权利要求11所述的XML数据压缩系统,其特征在于,采用前缀编码的方式对实际出现的子节点的编号和出现次数进行二进制编码。
13.根据权利要求11所述的XML数据压缩系统,其特征在于,以下述方式记录子节点的出现情况:
将子节点依次排列,根据子节点的出现情况,依次使用1位来标识,“1”表示出现,“0”表示未出现,末尾补0保证字节对齐。
14.根据权利要求9所述的XML数据压缩系统,其特征在于,还包括合并单元,其用于将数据单元中划分的小于给定阈值的微型数据块合并,并将合并的微型数据块发送给压缩输出单元。
15.根据权利要求9所述的XML数据压缩系统,其特征在于,对于以所述schema为规范的其它待压缩XML数据,直接使用存储单元中存储的优化后的schema对该XML数据进行压缩。
16.一种用于对通过权利要求9-15中的任何一个所述的XML数据压缩系统而得到的XML压缩数据进行解压的系统,包括:
schema解析单元,其用于获取优化后的schema,并对其进行解析;
结构解压单元,其用于获取压缩的结构信息部分,并对其进行解压;
数据解压单元,其用于获取压缩的数据部分,并对其进行解压;
还原单元,其用于建立schema节点和解压后的数据之间的绑定关系;根据schema和解压的结构信息还原XML数据的结构,并从对应的schema节点的数据块中获取相应的数据,生成XML文档;和
解压输出单元,其用于输出还原单元生成的XML文档。
CN201010141585.0A 2010-04-06 2010-04-06 一种xml数据压缩和解压缩方法及系统 Expired - Fee Related CN102214170B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010141585.0A CN102214170B (zh) 2010-04-06 2010-04-06 一种xml数据压缩和解压缩方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010141585.0A CN102214170B (zh) 2010-04-06 2010-04-06 一种xml数据压缩和解压缩方法及系统

Publications (2)

Publication Number Publication Date
CN102214170A true CN102214170A (zh) 2011-10-12
CN102214170B CN102214170B (zh) 2013-05-15

Family

ID=44745485

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010141585.0A Expired - Fee Related CN102214170B (zh) 2010-04-06 2010-04-06 一种xml数据压缩和解压缩方法及系统

Country Status (1)

Country Link
CN (1) CN102214170B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103186611A (zh) * 2011-12-30 2013-07-03 北大方正集团有限公司 一种压缩、解压及查询文档的方法、装置
CN104113345A (zh) * 2013-04-16 2014-10-22 晨星半导体股份有限公司 解压缩电路与相关的解压缩方法
CN105183750A (zh) * 2015-07-14 2015-12-23 河南蓝信科技股份有限公司 紧凑式xml解析系统
CN103186514B (zh) * 2011-12-31 2016-04-20 北大方正集团有限公司 用于实现文档结构化的方法和装置
CN107273761A (zh) * 2017-06-15 2017-10-20 深圳天珑无线科技有限公司 数据压缩方法与装置、解压缩方法与装置
CN110266702A (zh) * 2019-06-25 2019-09-20 上海电气泰雷兹交通自动化系统有限公司 基于XML的Wireshark用协议解析方法
CN111565191A (zh) * 2020-05-07 2020-08-21 南通保利佳服务外包有限公司 一种数据压缩、传输系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1547326A (zh) * 2003-11-28 2004-11-17 北京大学 可扩展标记语言数据流压缩器及其压缩方法
US7013425B2 (en) * 2001-06-28 2006-03-14 International Business Machines Corporation Data processing method, and encoder, decoder and XML parser for encoding and decoding an XML document

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7013425B2 (en) * 2001-06-28 2006-03-14 International Business Machines Corporation Data processing method, and encoder, decoder and XML parser for encoding and decoding an XML document
CN1547326A (zh) * 2003-11-28 2004-11-17 北京大学 可扩展标记语言数据流压缩器及其压缩方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《北京大学学报( 自然科学版)》 20100930 仇睿恒等 XTrim: 一种基于XML Schema 和微型数据块优化的XML 压缩方法 771-778 1-16 第46卷, 第5期 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103186611A (zh) * 2011-12-30 2013-07-03 北大方正集团有限公司 一种压缩、解压及查询文档的方法、装置
WO2013097802A1 (en) * 2011-12-30 2013-07-04 Peking University Founder Group Co., Ltd. Method and device for compressing, decompressing and querying document
US8768900B2 (en) 2011-12-30 2014-07-01 Peking University Founder Group Co., Ltd. Method and device for compressing, decompressing and querying document
CN103186611B (zh) * 2011-12-30 2016-03-30 北大方正集团有限公司 一种压缩、解压及查询文档的方法、装置
CN103186514B (zh) * 2011-12-31 2016-04-20 北大方正集团有限公司 用于实现文档结构化的方法和装置
CN104113345A (zh) * 2013-04-16 2014-10-22 晨星半导体股份有限公司 解压缩电路与相关的解压缩方法
CN104113345B (zh) * 2013-04-16 2017-03-01 晨星半导体股份有限公司 解压缩电路与相关的解压缩方法
CN105183750A (zh) * 2015-07-14 2015-12-23 河南蓝信科技股份有限公司 紧凑式xml解析系统
CN105183750B (zh) * 2015-07-14 2018-12-28 河南蓝信科技有限责任公司 紧凑式xml解析系统
CN107273761A (zh) * 2017-06-15 2017-10-20 深圳天珑无线科技有限公司 数据压缩方法与装置、解压缩方法与装置
CN110266702A (zh) * 2019-06-25 2019-09-20 上海电气泰雷兹交通自动化系统有限公司 基于XML的Wireshark用协议解析方法
CN111565191A (zh) * 2020-05-07 2020-08-21 南通保利佳服务外包有限公司 一种数据压缩、传输系统及方法

Also Published As

Publication number Publication date
CN102214170B (zh) 2013-05-15

Similar Documents

Publication Publication Date Title
CN102214170B (zh) 一种xml数据压缩和解压缩方法及系统
KR100614677B1 (ko) 구조화된 문서를 압축/복원하기 위한 방법
CN101783788B (zh) 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置
US7689630B1 (en) Two-level bitmap structure for bit compression and data management
CN104753540B (zh) 数据压缩方法、数据解压方法和装置
CN101223699A (zh) 压缩与解压缩结构化文档的方法和装置
US20070143664A1 (en) A compressed schema representation object and method for metadata processing
CN106202172B (zh) 文本压缩方法及装置
CN103177111A (zh) 重复数据删除系统及其删除方法
US8189912B2 (en) Efficient histogram storage
US8768900B2 (en) Method and device for compressing, decompressing and querying document
US20200212932A1 (en) Reducing storage of blockchain metadata via dictionary-style compression
EP1990737B1 (en) Document transformation system
CN102185611A (zh) 数据的有效提取和压缩
US20130339401A1 (en) Method for Reliable and Efficient Filesystem Metadata Conversion
CN104679823A (zh) 基于语义标注的异构数据关联方法及系统
CN102473175B (zh) Xml数据的压缩
CN103116654B (zh) 一种xml数据节点编码压缩方法
Mahmood et al. A feasible 6 bit text database compression scheme with character encoding (6BC)
CN104682966A (zh) 列表数据的无损压缩方法
Dong et al. Record-aware compression for big textual data analysis acceleration
CN102129872A (zh) 资料压缩、解压缩方法及其装置
US20080281984A1 (en) Hub and spoke compression
CN107818121B (zh) 一种html文件压缩方法、装置及电子设备
CN103714091A (zh) 一种生成对象识别符及从其中提取属性信息的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220919

Address after: 100871 No. 5, the Summer Palace Road, Beijing, Haidian District

Patentee after: Peking University

Patentee after: New founder holdings development Co.,Ltd.

Patentee after: PEKING University FOUNDER R & D CENTER

Address before: 100871 No. 5, the Summer Palace Road, Beijing, Haidian District

Patentee before: Peking University

Patentee before: PEKING UNIVERSITY FOUNDER GROUP Co.,Ltd.

Patentee before: PEKING University FOUNDER R & D CENTER

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130515

CF01 Termination of patent right due to non-payment of annual fee