一种压缩、解压及查询文档的方法、装置的制作方法

文档序号:6444620阅读:249来源:国知局
专利名称:一种压缩、解压及查询文档的方法、装置的制作方法
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种压缩、解压及查询文档的方法、装置。
背景技术
可扩展标记语言(Extensible Markup language, XML)作为一种常用的数据存储语言,已经被广泛使用。由于在XML文档中存在着大量的数据冗余,因此,在使用过程中人们通常通过专门的XML压缩方法对XML文档进行数据压缩。常用的XML压缩方法主要分为两种:第一种,为不支持查询的压缩方法;如果想要从使用该方法压缩得到的XML文档中查询并得到部分XML数据,需要先将整个XML文档解压缩,然后进行查询,并获取查询后的结果;

第二种,为支持查询的XML压缩方法;该方法支持直接从压缩后的XML文档中查询并得到部分XML数据。该方法使用XPath、XQuery等来作为查询已压缩的XML文档的查询语言,该查询语言是基于路径从XML文档查找信息的语言工具;路径为在XML文档的结构中从某一节点开始定位到目标节点所经过的所有节点构成的序列,一般会采用所经过节点的名字与一些特殊符号组合成一个字符串来表示。其中XPath并没有着眼于XML数据的文本表征,而是对其中抽象的逻辑结构树进行操作,其名称正是来源于其使用一种类似于统一资源标识符(Uniform Resource Identifier,.〗)中路径表示方式来在XML数据的层次结构中进行游历、定位;其主要目的是用于定位XML文档中的某个具体的数据片段。为了达到这个目的,在XPath规范中提供了基本的字符串、数值以及布尔的处理功能。本发明人发现,现有技术中无法实现对有对应Schema的XML文档进行压缩、解压和支持在压缩状态下的查询操作。

发明内容
本发明实施例提供一种对有对应Schema的XML文档的压缩方法,用于解决无法对有对应Schema的XML文档进行压缩操作的问题。一种对有对应Schema的XML文档的压缩方法,所述方法包括:分离出XML文档的结构内容和数据内容;所述结构内容为XML文档中的标签中除属性值以及标签间的内容之外的其他内容;确定所述结构内容中的节点的路径编码;根据预先保存的所述节点的先序号,确定所述节点所对应的数据内容;所述节点的路径编码通过所述节点和所述结构内容中的其他节点标识该节点在结构内容中的存储位置;按照预先设置的方法对所述结构内容中的节点以及节点的路径编码进行处理,并将处理后的节点、节点的路径编码和所述数据内容分别进行压缩。一种对有对应Schema的XML文档的压缩的装置,所述装置包括:
分离单元,用于分离出XML文档的结构内容和数据内容;所述结构内容为XML文档中的标签中除属性值以及标签间的内容之外的其他内容;确定单元,用于确定所述结构内容中的节点的路径编码;根据预先保存的所述节点的先序号,确定所述节点所对应的数据内容;所述节点的路径编码通过所述节点和所述结构内容中的其他节点标识该节点在结构内容中的存储位置;压缩单元,用于按照预先设置的方法对所述结构内容中的节点以及节点的路径编码进行处理,并将处理后的节点、节点的路径编码和所述数据内容分别进行压缩。本发明实施例提供一种对使用上述压缩方法进行压缩后的XML文档解压缩的方法,用于解决无法对压缩后的有对应Schema的XML文档进行解压操作的问题:一种对使用上述压缩方法进行压缩后的XML文档解压缩的方法,该方法包括:获取压缩后的所述节点的路径编码和压缩后的文档结构信息;对压缩后的所述节点的路径编码进行解压操作,并输出解压后的路径编码所对应的节点;对压缩后的所述文档结构信息进行解压操作,根据解压后的文档结构信息确定解压后的节点对应的压缩后的数据内容,解压并输出确定的数据内容。一种对使用上述压缩方法后进行压缩后的XML文档解压缩的装置,该装置包括:获取单元,用于获取压缩后的所述节点的路径编码和压缩后的文档结构信息;解压单元,用于对压缩后的所述节点的路径编码进行解压操作;所述数据确定单元,用于根据所述解压单元解压后的文档结构信息进行解压操作,根据解压后的文档结构信息确定解压后的节点对应的压缩后的数据内容;输出单元,用于输出所述解压单元解压后的路径编码所对应的节点;输出所述数据确定单元确定的数据内容。可见,采用上述解压方法,在获取并解压压缩后的节点的路径编码、压缩后的数据内容的路径编码和压缩后的文档结构信息后,输出解压后的路径编码所对应的节点;根据解压后的文档结构信息确定路径编码与解压后的节点的路径编码相同的压缩后的数据内容,解压并输出确定的数据内容;可见,该方法可以对使用上述压缩方法对压缩后的XML文档进行解压缩的操作。本发明实施例提供一种使用上述的压缩方法进行压缩后的XML文档查询的方法,用于解决无法对压缩后的有对应Schema的XML文档进行查询的问题:—种对使用上述压缩方法进行压缩后的XML文档查询的方法,该方法包括:按照预先设置的转换方法,将输入的查询路径转换为路径编码;在压缩后的XML文档中查找转换后的路径编码所对应的节点,将查找到的节点作为查询结果进行输出;或者,在压缩后的XML文档中查找转换后的路径编码所对应的节点、以及查找到的节点所对应的数据内容,将查找到的节点和数据内容作为查询结果进行输出。一种对使用上述压缩方法进行压缩后的XML文档查询的装置,该装置包括:转换单元,用于按照预先设置的转换方法,将输入的查询路径转换为路径编码;节点查找单元,用于在压缩后的XML文档中查找转换后的路径编码所对应的节占.
数据查找单元,用于查找所述节点查找单元查找出的节点所对应的数据内容;查找输出单元,用于将所述节点查找单元查找到的节点作为查询结果进行输出;或者,将所述查找单元查找到的节点和所述数据查找单元查找到的数据内容作为查询结果进行输出。可见,采用上述查询方法,由于按上述方法压缩后有对应Schema的XML文档中的节点和/或数据内容的存储路径为路径编码;因此,将查询路径转换为路径编码后,可对节点和/或数据内容进行查找,并将查找到的节点和/或数据内容作为查询结果进行输出;因此,通过该查询方法可对按上述压缩方法压缩后有对应Schema的XML文档进行查询的操作。


图1为本发明实施例提供的一种对有对应Schema的XML文档的压缩方法流程示意图;图2为本发明实施例提供的一种使用本发明实施例提供的压缩方法进行压缩后的XML文档解压缩的方法流程示意图;图3为本发明实施例提供的一种使用本发明实施例提供的压缩方法进行压缩后的XML文档查询的方法流程示意图;图4为XML文档的Schema结构示意图;图5为本发明实施例所使用的XML文档的Schema结构示意图;图6为本发明实施例提供的一种对有对应Schema的XML文档的压缩的装置的结构示意图;图7为本发明实施例提供的一种使用本发明实施例提供的压缩方法进行压缩后的XML文档解压缩的装置的结构示意图;图8为本发明实施例提供的一种对使用本发明实施例提供的压缩方法进行压缩后的XML文档查询的装置的结构示意图。
具体实施例方式本发明实施例提供一种对有对应Schema的XML文档的压缩方法,该方法首先分离出XML文档的结构内容和数据内容;其次,分别确定节点的路径编码和数据内容的路径编码;最后,对节点的路径编码、数据内容的路径编码以及数据内容分别进行压缩;如图1所述,该方法的具体过程如下:步骤11,分离出XML文档的结构内容和数据内容;所述结构内容为XML文档中的标签中除属性值以及标签间的内容之外的其他内容;步骤12,确定所述结构内容中的节点的路径编码;根据预先保存的所述节点的先序号,确定所述节点所对应的数据内容;所述节点的路径编码通过所述节点和所述结构内容中的其他节点标识该节点在结构内容中的存储位置;步骤13,按照预先设置的方法对所述结构内容中的节点以及节点的路径编码进行处理,并将处理后的节点、节点的路径编码和所述数据内容分别进行压缩。具体的,实现步骤12的方法包括:
将所述结构内容中的节点对应的实际路径中所包含的各节点,替换为相应节点对应的节点编码;将替换后得到的路径作为所述结构内容中的节点的路径编码;所述节点的实际路径通过该节点以及结构内容中的其他节点标识所述节点在结构内容中的实际存储路径。较佳的,为了方便后续的解压缩操作,在上述压缩过程中还可生成XML文档的文档结构信息,并对该文档结构信息进行压缩;该文档结构信息包括节点的先序号以及数据的先序号。本发明实施例还提供一种使用上述压缩方法进行压缩后的XML文档解压缩的方法,该方法可在获取并解压压缩后的节点的路径编码、压缩后的数据内容的路径编码和压缩后的文档结构信息后,输出解压后的路径编码所对应的节点;根据解压后的文档结构信息确定路径编码与解压后的节点的路径编码相同的压缩后的数据内容,解压并输出确定的数据内容;如图2所示,该方法的具体过程如下:步骤21,获取压缩后的所述节点的路径编码和压缩后的文档结构信息;步骤22,对压缩后的所述节点的路径编码进行解压操作,并输出解压后的路径编码所对应的节点;步骤23,对压缩后的所述文档结构信息进行解压操作,根据解压后的文档结构信息确定解压后的节点对应的压缩后的数据内容,解压并输出确定的数据内容。由于按上述压缩方法压缩后的XML文档中包括节点的先序号和数据内容的先序号,因此,步骤23中的根据解压后的文档结构信息以及输出的节点确定压缩后的数据的方法具体包括:当与解压后的所述节点的路径编码相同的路径编码所对应的数据内容的先序号序列长度不为O时,将与解压后的所述节点的先序号之差为I的先序号所对应的压缩后的数据内容,确定为与解压后的所述节点的路径编码相同的压缩后的数据内容。本发明实施例提供一种对使用上述压缩方法进行压缩后的XML文档查询的方法,由于按上述方法压缩后有对应Schema的XML文档中的节点和/或数据内容的存储路径为路径编码;因此,将查询路径转换为路径编码后,可对节点和/或数据内容进行查找,并将查找到的节点和/或数据内容作为查询结果进行输出;如图3所示,该方法具体包括:步骤31,按照预先设置的转换方法,将输入的查询路径转换为路径编码;步骤32,在压缩后的XML文档中查找转换后的路径编码所对应的节点,将查找到的节点作为查询结果进行输出;或者,在压缩后的XML文档中查找转换后的路径编码所对应的节点、以及查找到的节点所对应的数据内容,将查找到的节点和数据内容作为查询结果进行输出。具体的,步骤31包括如下方法:将所述查询路径中所包含的节点转换为与该节点对应的节点编码,并将转换后的路径作为所述查询路径的路径编码;由于按上述压缩方法压缩后的XML文档中包括数据内容的先序号,因此步骤32中在压缩后的XML文档中查找转换后的路径编码所对应的节点的方法包括:当转换后的路径编码中的最后一个节点编码带有谓语时,在压缩后的XML文档的中查找与转换后的路径编码相同的路径编码所对应的节点;若查找到的节点为一个、且该查找到的节点为第一路径编码所确定的节点时,则将查找到的节点作为转换后的路径编码所对应的节点;若查找到的节点为多个,则根据所述谓语从多个节点中确定一个或多个节点,并将确定的一个或多个节点作为转换后的路径编码所对应的节点,所述谓语用于表示第一路径编码所对应的一个或多个节点,第一路径编码是由转换后的路径编码中带有所述谓语的节点编码与该带有所述谓语的节点编码之前的各节点编码所确定的路径编码;或者,当转换后的路径编码中除最后一个节点之外的节点带有谓语时,在压缩后的XML文档的中查找与第一路径编码相同的路径编码所对应的节点;若查找到的节点为一个,且该查找到的节点为第一路径编码所确定的节点时,在压缩后的XML文档中查找与转换后的路径编码相同、且包含查找到的节点所对应的节点编码的路径编码;将该查找到的路径编码所对应的节点作为转换后的路径编码所对应的节点;若查找到的节点为多个,根据所述谓语从多个节点中确定一个或多个节点;在压缩后的XML文档中查找与转换后的路径编码相同、且包含从多个节点中确定的一个或多个节点所对应的节点编码的路径编码;将该查找到的路径编码所对应的节点作为转换后的路径编码所对应的节点。由于按上述压缩方法压缩后的XML文档中还包括节点的先序号,因此,步骤32中的查找转换后的路径编码所对应的数据内容的方法包括:在压缩后的XML文档的中查找与转换后的路径编码相同的路径编码所对应的数据内容;若查找到的数据内容为一项,则将查找到的数据内容作为转换后的路径编码所对应的数据内容;若查找到的数据内容为多项,则从查找出的多项数据内容中确定与查找到的节点的先序号之差为I的先序号所对应的数据内容,将确定的数据内容作为转换后的路径编码所对应的数据内容。Schema结构中包 括点(site)节点、范围(regions)节点、名称(namerica)节点、项目(item)节点、编号(id)节点、位置(location)节点、类型(categories)节点,全类型(complexType)节点,连续指示器sequence、选择指示器choice,例如某一有对应Schema的XML文档的Schema结构如下:
< xml version= “1.0” encoding= “UTF-8’’>
<xs: schema xmlns:xs= “http://www.w3.0rg/2001/xmlschema”>
<xs:element name= “root” type=
<xs: complexType name= “tl” ><xs: sequence maxOccurs= “3,,>
<xs:choice maxO ccurs= “2” >
<xs:element name= “el” type= “xs:1nt” minOccurs= “0,,/>
<xs !element name=“e2” type= “xs: string” minOccurs= “0,,/>
<xs: element name= “e3” type= “xs:1nt” minOccurs= “0,,/>
</xs: choice〉
</xs: sequence〉
</xs: sequence〉
</xs: complexType〉
</xs: schema〉在该schema中,存在一个包含choice指示器的sequence指示器和一个没有子节点的sequence指示器,在choice指示器中包含三个子节点为第一子节点el、第二子节点e2和第三子节点e3均为可选节点,该schema结构所对应的树形结构如图4所示。以下以具体实施例进行介绍:
为了方便介绍,以下所有实施例以拥有图5所示的结构的XML文档为例,其中第一数据节点对应的数据内容为itemO、第二数据节点对应的数据内容为us、第三数据节点对应的数据内容为iteml、第四数据节点对应的数据内容为item2、第五数据节点对应的数据内容为CA ;并对该结构进行先序号遍历,得到所有节点的先序号,如图5所示J_XML有对应的Schema结构,所述Schema结构中包含Schema节点。实施例一:本实施例一提供一种对有对应Schema的XML文档的压缩方法,该方法首先分离出XML文档的结构内容和数据内容;其次,分别确定节点的路径编码和数据内容的路径编码;最后,对节点的路径编码、数据内容的路径编码以及数据内容分别进行压缩;具体步骤如下:步骤A,按照预先设置的分离方法,分离出XML文档的结构内容和数据内容;所述结构内容为XML文档中的标签中除属性值以及标签间的内容之外的其他内容;所述数据内容包括XML文档中的标签中的属性值以及标签间的内容;步骤 B,为 Schema 节点中的 site、regions、namerica、item、id、location、categories、category节点分别分配预先设置好的节点编号;所述节点编号与Schema节点
--对应;例如,为 site、regions、namerica、item、id、location、categories、category
节点分配的节点编码分别为1、2、3、4、5、6 ;步骤C,确定所述结构内容中的所有节点的路径编码;根据预先保存的所述节点的先序号,确定所述节点所对应的数据内容;与节点的先序号与该节点所对应的数据内容的先序号之差为I ;因此,在数据内容的路径编码与该数据内容的节点的路径编码相同;所述节点的路径编码通过所述节点和所述结构内容中的其他节点标识该节点在结构内容中的存储位置;较佳的,本步骤中确定结构内容中的所有节点的路径编码包括:将所述结构内容中的节点对应的实际路径中所包含的各节点,替换为相应节点对应的节点编码;将替换后得到的路径作为所述结构内容中的节点的路径编码;所述节点的实际路径通过该节点以及结构内容中的其他节点标识所述节点在结构内容中的实际存储路径;例如,获得“namerica”节点的实际路径为“/site/regions/namerica”,根据步骤C中预先设置的节点编号,则该“namerica”节点的路径编码为“/1/2/3” ;根据该路径编码可确定该“namerica”节点的先序号为3,对该先序号进行差值编码操作后获得编码先序号为3 ;以相同的方法,获得所有Schema节点的路径编码、先序号以及编码先序号;Location节点所对应的数据内容的实际路径为“/site/regions/namerica/item/location”时,该实际路径的路径编码为“/1/2/3/4/6”,根据该路径编码可确定该路径编码对应的数据内容为“CA”和“US”,该路径编码对应的先序号为42和8 ;通过上述方法,对获取所有节点和数据内容的实际路径、路径编码、先序号、编码先序号;获取结果如表I所不。
权利要求
1.一种对有对应Schema的XML文档的压缩方法,其特征在于,所述方法包括: 分离出XML文档的结构内容和数据内容,所述结构内容为XML文档中的标签中除属性值以及标签间的内容之外的其他内容; 确定所述结构内容中的节点的路径编码;根据预先保存的所述节点的先序号,确定所述节点所对应的数据内容;所述节点的路径编码通过所述节点和所述结构内容中的其他节点标识该节点在结构内容中的存储位置; 按照预先设置的方法对所述结构内容中的节点以及节点的路径编码进行处理,并将处理后的节点、节点的路径编码和所述数据内容分别进行压缩。
2.如权利要求1所述的方法,其特征在于,所述确定所述结构内容中的节点的路径编码包括: 将所述结构内容中的节点对应的实际路径中所包含的各节点,替换为相应节点对应的节点编码;将替换后得到的路径作为所述结构内容中的节点的路径编码;所述节点的实际路径通过该节点以及结构内容中的其他节点标识所述节点在结构内容中的实际存储路径。
3.如权利要求1-2中任一所述的方法,其特征在于,在将处理后的节点、节点的路径编码和所述数据内容分别进行压缩之后,进一步包括: 在压缩过程中生成的文档结构信息,并对所述文档结构信息进行压缩;所述文档结构信息包括节点的先序号以及数据的先序号。
4.一种对使用权利要求3所述的压缩方法进行压缩后的XML文档解压缩的方法,其特征在于,该方法包括: 获取压缩后的所述节点的路径编码和压缩后的文档结构信息; 对压缩后的所述节点的路径编码进行解压操作,并输出解压后的路径编码所对应的节占.对压缩后的所述文档结构信息进行解压操作,根据解压后的文档结构信息确定解压后的节点对应的压缩后的数据内容,解压并输出确定的数据内容。
5.如权利要求4所述的方法,其特征在于,所述根据解压后的文档结构信息以及输出的节点确定压缩后的数据内容包括: 当与解压后的所述节点的路径编码相同的路径编码所对应的数据内容的先序号序列长度不为O时,将先序号大于所述节点且小于该路径中该节点下一个节点的先序号的数据内容,确定为与解压后所述节点对应的数据内容。
6.一种对使用权利要求1所述的压缩方法进行压缩后的XML文档查询的方法,其特征在于,该方法包括: 按照预先设置的转换方法,将输入的查询路径转换为路径编码; 在压缩后的XML文档中查找转换后的路径编码所对应的节点,将查找到的节点作为查询结果进行输出;或者,在压缩后的XML文档中查找转换后的路径编码所对应的节点、以及查找到的节点所对应的数据内容,将查找到的节点和数据内容作为查询结果进行输出。
7.如权利要求6所述的方法,其特征在于,所述按照预先设置的转换方法,将输入的查询路径转换为路径编码包括: 将所述查询路径中所包含的节点转换为与该节点对应的节点编码,并将转换后的路径作为所述查询路径的路径编码。
8.如权利要求7所述的方法,其特征在于,所述压缩后的XML文档中包含数据内容的先序号;所述在压缩后的XML文档中查找转换后的路径编码所对应的节点包括: 当转换后的路径编码中的最后一个节点编码带有谓语时,在压缩后的XML文档的中查找与转换后的路径编码相同的路径编码所对应的节点;若查找到的节点为一个、且该查找到的节点为第一路径编码所确定的节点时,则将查找到的节点作为转换后的路径编码所对应的节点;若查找到的节点为多个,则根据所述谓语从多个节点中确定一个或多个节点,并将确定的一个或多个节点作为转换后的路径编码所对应的节点,所述谓语用于表示第一路径编码所对应的一个或多个节点,第一路径编码是由转换后的路径编码中带有所述谓语的节点编码与该带有所述谓语的节点编码之前的各节点编码所确定的路径编码;或者, 当转换后的路径编码中除最后一个节点之外的节点带有谓语时,在压缩后的XML文档的中查找与第一路径编码相同的路径编码所对应的节点;若查找到的节点为一个,且该查找到的节点为第一路径编码所确定的节点时,在压缩后的XML文档中查找与转换后的路径编码相同、且包含查找到的节点所对应的节点编码的路径编码;将该查找到的路径编码所对应的节点作为转换后的路径编码所对应的节点;若查找到的节点为多个,根据所述谓语从多个节点中确定一个或多个节点;在压缩后的XML文档中查找与转换后的路径编码相同、且包含从多个节点中确定的一个或多个节点所对应的节点编码的路径编码;将该查找到的路径编码所对应的节点作为转换后的路径编码所对应的节点。
9.如权利要求6或8所述的方法,其特征在于,所述XML文档中包括节点的先序号和数据内容的先序号;所述查找转换后的路径编码所对应的数据内容包括: 在压缩后的XML文档的中查找与转换后的路径编码相同的路径编码所对应的数据内容; 若查找到的数据内容为一项,则将查找到的数据内容作为转换后的路径编码所对应的数据内容; 若查找到的数据内容为多项,则从查找出的多项数据内容中确定与查找到的节点的先序号之差为I的先序号所对应的数据内容,将确定的数据内容作为转换后的路径编码所对应的数据内容。
10.一种对有对应Schema的XML文档的压缩的装置,其特征在于,所述装置包括: 分离单元,用于分离出XML文档的结构内容和数据内容;所述结构内容为XML文档中的标签中除属性值以及标签间的内容之外的其他内容; 确定单元,用于确定所述结构内容中的节点的路径编码;根据预先保存的所述节点的先序号,确定所述节点所对应的数据内容;所述节点的路径编码通过所述节点和所述结构内容中的其他节点标识该节点在结构内容中的存储位置; 压缩单元,用于按照预先设置的方法对所述结构内容中的节点以及节点的路径编码进行处理,并将处理后的节点、节点的路径编码和所述数据内容分别进行压缩。
11.如权利要求10所述的装置,其特征在于,所述确定单元用于: 将所述结构内容中的节点对应的实际路径中所包含的各节点,替换为相应节点对应的节点编码;将替换后得到的路径作为所述结构内容中的节点的路径编码;所述节点的实际路径通过该节点以及结构内容中的其他节点标识所述节点在结构内容中的实际存储路径。
12.如权利要求10所述的装置,其特征在于,所述装置还包括:生成单元,用于在压缩过程中生成的文档结构信息;所述文档结构信息包括数据内容的先序号序列长度以及数据的先序号; 所述压缩单元还用于,对所述生成单元生成的文档结构信息进行压缩。
13.一种对使用权利要求12所述的装置进行压缩后的XML文档解压缩的装置,其特征在于,该装置包括: 获取单元,用于获取压缩后的所述节点的路径编码和压缩后的文档结构信息; 解压单元,用于对压缩后的所述节点的路径编码进行解压操作; 所述数据确定单元,用于根据所述解压单元解压后的文档结构信息进行解压操作,根据解压后的文档结构信息确定解压后的节点对应的压缩后的数据内容; 输出单元,用于输出所述解压单元解压后的路径编码所对应的节点;输出所述数据确定单元确定的数据内容。
14.如权利要求13所述的装置,其特征在于,所述数据确定单元具体用于: 当与解压后的所述节点的路径编码相同的路径编码所对应的数据内容的先序号序列长度不为O时,将先序号大于所述节点且小于该路径中该节点下一个节点的先序号的数据内容,确定为与解压后所述节点对应的数据内容。
15.一种对使用权利要求10所述的装置进行压缩后的XML文档查询的装置,其特征在于,该装置包括: 转换单元,用于按照预先设置的转换方法,将输入的查询路径转换为路径编码; 节点查找单元,用于在压缩后的XML文档中查找转换后的路径编码所对应的节点; 数据查找单元,用于查找所述节点查找单元查找出的节点所对应的数据内容; 查找输出单元,用于将所述节点查找单元查找到的节点作为查询结果进行输出;或者,将所述查找单元查找到的节点和所述数据查找单元查找到的数据内容作为查询结果进行输出。
16.如权利要求15所述的装置,其特征在于,所述转换单元具体用于: 将所述查询路径中所包含的节点转换为与该节点对应的节点编码,并将转换后的路径作为所述查询路径的路径编码。
17.如权利要求15所述的装置,其特征在于,所述压缩后的XML文档中包含数据内容的先序号;所述节点查找单元具体用于: 当转换后的路径编码中的最后一个节点编码带有谓语时,在压缩后的XML文档的中查找与转换后的路径编码相同的路径编码所对应的节点;若查找到的节点为一个、且该查找到的节点为第一路径编码所确定的节点时,则将查找到的节点作为转换后的路径编码所对应的节点;若查找到的节点为多个,则根据所述谓语从多个节点中确定一个或多个节点,并将确定的一个或多个节点作为转换后的路径编码所对应的节点,所述谓语用于表示第一路径编码所对应的一个或多个节点,第一路径编码是由转换后的路径编码中带有所述谓语的节点编码与该带有所述谓语的节点编码之前的各节点编码所确定的路径编码;或者, 当转换后的路径编码中除最后一个节点之外的节点带有谓语时,在压缩后的XML文档的中查找与第一路径编码相同的路径编码所对应的节点;若查找到的节点为一个,且该查找到的节点为第一路径编码所确定的节点时,在压缩后的XML文档中查找与转换后的路径编码相同、且包含查找到的节点所对应的节点编码的路径编码;将该查找到的路径编码所对应的节点作为转换后的路径编码所对应的节点;若查找到的节点为多个,根据所述谓语从多个节点中确定一个或多个节点;在压缩后的XML文档中查找与转换后的路径编码相同、且包含从多个节点中确定的一个或多个节点所对应的节点编码的路径编码;将该查找到的路径编码所对应的节点作为转换后的路径编码所对应的节点。
18.如权利要求15或16所述的装置,其特征在于,所述XML文档中包括节点的先序号和数据内容的先序号;所述数据查找单元具体用于: 在压缩后的XML文档的中查找与转换后的路径编码相同的路径编码所对应的数据内容; 若查找到的数据内容为一项,则将查找到的数据内容作为转换后的路径编码所对应的数据内容; 若查找到的数据内容为多项,则从查找出的多项数据内容中确定与查找到的节点的先序号之差为I的先序号所对应的数据内容,将确定的数据内容作为转换后的路径编码所对应的数据内容。`
全文摘要
本发明涉及计算机应用技术领域,尤其涉及一种压缩、解压及查询文档的方法、装置,用于解决如何通过Schema提高对XML文档进行压缩的效率;该方法包括分离出XML文档的结构内容和数据内容;结构内容为XML文档中的标签中除属性值以及标签间的内容之外的其他内容;确定结构内容中的节点的路径编码;根据预先保存的节点的先序号,确定节点所对应的数据内容;所述节点的路径编码通过所述节点和所述结构内容中的其他节点标识该节点在结构内容中的存储位置;按照预先设置的方法对所述结构内容中的节点以及节点的路径编码进行处理,并将处理后的节点、节点的路径编码和所述数据内容分别进行压缩。可见,从用该方法能够通过Schema提高对XML文档进行压缩的效率。
文档编号G06F17/30GK103186611SQ20111045666
公开日2013年7月3日 申请日期2011年12月30日 优先权日2011年12月30日
发明者仇睿恒, 胡薇 申请人:北大方正集团有限公司, 北京方正阿帕比技术有限公司, 北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1