CN103116654B - 一种xml数据节点编码压缩方法 - Google Patents

一种xml数据节点编码压缩方法 Download PDF

Info

Publication number
CN103116654B
CN103116654B CN201310070566.7A CN201310070566A CN103116654B CN 103116654 B CN103116654 B CN 103116654B CN 201310070566 A CN201310070566 A CN 201310070566A CN 103116654 B CN103116654 B CN 103116654B
Authority
CN
China
Prior art keywords
node
coding
integer
xml data
xml
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.)
Active
Application number
CN201310070566.7A
Other languages
English (en)
Other versions
CN103116654A (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.)
TONGFANG KNOWLEDGE NETWORK (BEIJING) TECHNOLOGY Co Ltd
Original Assignee
TONGFANG KNOWLEDGE NETWORK (BEIJING) TECHNOLOGY 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 TONGFANG KNOWLEDGE NETWORK (BEIJING) TECHNOLOGY Co Ltd filed Critical TONGFANG KNOWLEDGE NETWORK (BEIJING) TECHNOLOGY Co Ltd
Priority to CN201310070566.7A priority Critical patent/CN103116654B/zh
Publication of CN103116654A publication Critical patent/CN103116654A/zh
Application granted granted Critical
Publication of CN103116654B publication Critical patent/CN103116654B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种XML数据节点编码压缩方法,所述方法包括:将XML数据生成XML文档树;对XML文档树中的每个节点进行编码;对节点编码进行压缩存储;本发明是一种无损的压缩方法,具有简单易用的特点,编码及其编码压缩规则简单,便于理解和编程实现,能够快速解压,利于编码操作;在压缩时依然保持了编码的结构信息,因此无需解压便可直接比较比特串来判断节点间的特定结构关系,并且采用分段压缩,编码的各个整数互不影响,在进行解压操作时,不需全部解压比特串,可按所需顺序分段解压,提高了编码操作的性能。

Description

一种XML数据节点编码压缩方法
技术领域
本发明涉及数据库领域,尤其涉及一种简单易用的XML数据节点编码压缩方法。
背景技术
随着XML逐渐成为广泛应用的数据表现形式,如何对XML数据进行高效的管理也成为一个重要的问题。对于需要大量管理XML数据的数据库管理***来说,为了有效支持XML查询,特别是结构查询,研究者已经提出了XML数据节点的各种编码方案。所谓XML编码指的是使用特定的编码策略对XML文档树中的元素、属性和其他语义实体赋予一个唯一的编码。对XML数据进行有效编码,可以迅速确定XML文档树中任意节点间的结构关系,例如:父子关系、祖先关系及文档顺序等,不需遍历XML文档树,从而提高了结构查询的效率。
对现有的技术文献检索发现,XML数据的主要编码方案包括Dewey编码等。Dewey编码方法把XML数据看作树模型,树中节点根据Dewey编码标注,每个节点赋予Dewey标签作为唯一的ID。例如,设树T的一个节点的Dewey编码为c(u),则节点u的孩子节点v的Dewey编码c(v)=c(u).n,这里n记录的是节点v在u中所有孩子节点中的序号,利用符号“.”将c(u)与n进行连接。编码时,从根节点开始为每个节点编排Dewey标签,如DeweyID为0.2.3的节点是节点0.2的第4个子节点,即Dewey编码直接将父节点的编码作为子节点的前缀。该编码方式能反映节点间的兄弟及继承关系,有效地支持了结构关系计算。但动态更新XML数据后需要重新编码,且编码没有采用压缩方式存储,造成了存储空间浪费。
Patrick O’Neil在论文“ORDPATHs:Insert-Firendly XML NodeLabels”中提出的ORDPATH编码是一种扩展的Dewey编码。逻辑涵义上,ORDPATH的每个节点对应编码的一部分,如节点编码为1的三个子节点分别编码为1.1、1.3与1.5,以此类推。实际表示时,它采用二进制的形式对编码进行了压缩,其结构由Li/Oi比特串构成,且一个Li/Oi对应于ORDPATH编码中的一部分,Li表示紧跟其后的Oi的比特数,使用前缀编码方式表示,Oi存储的是相对该比特数所在区间开始值的差值。ORDPATH编码也是一种前缀编码,可通过比较前缀反映节点的兄弟、继承关系,且其采用压缩方法存储,具有较高的压缩比,但相应的压缩规则复杂,因此存在解压缩过程复杂的缺点,不利于在大规模XML数据的结构查询中进行快速的节点编码操作。
发明内容
为解决上述技术中存在的问题与缺陷,本发明提供了一种XML数据节点编码压缩方法。所述技术方案如下:
一种XML数据节点编码压缩方法,包括:
将XML数据生成XML文档树;
对XML文档树中的每个节点进行编码;
对节点编码进行压缩存储。
本发明提供的技术方案的有益效果是:
是一种无损的压缩方法,具有简单易用的特点,编码及其编码压缩规则简单,便于理解和编程实现,能够快速解压,利于编码操作。
在压缩时依然保持了编码的结构信息,因此无需解压便可直接比较比特串来判断节点间的特定结构关系,并且采用分段压缩,编码的各个整数互不影响,在进行解压操作时,不需全部解压比特串,可按所需顺序分段解压,提高了编码操作的性能。
附图说明
图1是XML数据节点编码压缩方法流程图;
图2是XML文档树结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述:
如图1所示,提供了XML数据节点编码压缩方法流程,包括:
步骤10将XML数据生成XML文档树;
在生成上述文档树的过程中不区分元素节点、属性节点和文本节点。为形象说明该过程,例如下面的XML文档:
对其构件的XML文档树结构如图2所示。
步骤20对XML文档树中的每个节点进行编码;
进行编码前首先对文档树的每个节点分配一个整数,分配方法如下:
(1)如果节点为根节点则分配整数1。
(2)如果节点不是叶子节点则为其子节点自左到右分配整数1、3、5…,初始时分配的是正奇数,偶数保留。
按照上述方法遍历一遍文档树即可完成节点整数的分配并连接,然后对每个节点进行编码,编码规则为从根节点到某节点的路径上的所有整数以符号“.”进行连接作为该节点的编码;即若节点不为根节点,则节点编码由其父节点编码与代表该节点在父节点的所有子节点中的位置的整数以“.”进行连接构成;若节点为根节点则编码直接为其分配整数。如图2所示节点BOOK为根节点则其编码为“1”,节点ISBN是根节点的第一个子节点则其编码为1.1。
步骤30对节点编码进行压缩存储。
存储方式采用二进制比特串的形式,如若直接存储编码中的整数,会存在很多冗余的比特位,造成物理存储空间浪费,因而采用压缩方式存储,存储时按编码中整数的先后顺序分段压缩为二进制串,但忽略连接符号“.”不存储。编码的二进制存储形式为:L0B0L1B1…,其中一对LB表示一个整数,L表示紧跟其后的比特串的位数,L的设定为形如比特串“(1)n0”表示紧跟其后的整数B的位数为n+7,n表示比特1的个数,B表示编码中整数的二进制串,之所以加7是因为实际应用中编码后的整数的位数大多为8位,利于数据编码在内存中按字节对齐。L的各种比特串以及其表示的B的位数和范围如表1所示:
表1
比特串L B的位数 B的范围
0 7 [1,127]
10 8 [128,255]
110 9 [256,511]
1110 10 [512,1023]
11110 11 [1024,2047]
111110 12 [2048,4095]
... ... ...
例如,图2中的节点CAPTION的编码为“1.3.5.1”,整数1、3、5的范围都在[1,127]范围内,则L的比特串为0,紧跟其后的整数的比特串B为7位,则编码“1.3.5.1”的二进制串为:“00000001000000110000010100000001”。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种XML数据节点编码压缩方法,其特征在于,所述方法包括:
将XML数据生成XML文档树;
对XML文档树中的每个节点进行编码;
对节点编码进行压缩存储;所述节点编码的存储是对编码中的整数先后分段压缩为二进制比特串的形式进行存储,但忽略连接符号“.”不存储,编码的二进制存储形式为:L0B0L1B1…,其中一对LB表示一个整数,L表示紧跟其后的比特串的位数,B表示编码中整数的二进制串。
2.根据权利要求1所述的XML数据节点编码压缩方法,其特征在于,所述文档树中每个节点编码前包括对文档树进行节点整数的分配和连接。
CN201310070566.7A 2013-03-06 2013-03-06 一种xml数据节点编码压缩方法 Active CN103116654B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310070566.7A CN103116654B (zh) 2013-03-06 2013-03-06 一种xml数据节点编码压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310070566.7A CN103116654B (zh) 2013-03-06 2013-03-06 一种xml数据节点编码压缩方法

Publications (2)

Publication Number Publication Date
CN103116654A CN103116654A (zh) 2013-05-22
CN103116654B true CN103116654B (zh) 2016-08-24

Family

ID=48415027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310070566.7A Active CN103116654B (zh) 2013-03-06 2013-03-06 一种xml数据节点编码压缩方法

Country Status (1)

Country Link
CN (1) CN103116654B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105094924B (zh) * 2015-08-21 2018-06-26 华为技术有限公司 镜像文件的导入方法及装置
CN107797973A (zh) * 2017-09-27 2018-03-13 西安交通大学 一种面向硬件实现的gbdt分类模型压缩方法
CN111130860B (zh) * 2019-12-11 2023-04-07 中盈优创资讯科技有限公司 网络拓扑管理方法及装置、网络拓扑查询方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615190A (zh) * 2009-07-31 2009-12-30 复旦大学 安全的xml关键字检索方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615190A (zh) * 2009-07-31 2009-12-30 复旦大学 安全的xml关键字检索方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
有效的XML树结构压缩;仲志平等;《安徽师范大学学报(自然科学版)》;20110131;第34卷(第1期);第33-37页 *

Also Published As

Publication number Publication date
CN103116654A (zh) 2013-05-22

Similar Documents

Publication Publication Date Title
CN103326732B (zh) 压缩数据的方法、解压数据的方法、编码器和解码器
US8175875B1 (en) Efficient indexing of documents with similar content
CN103944981B (zh) 一种基于纠删码技术改进的云存储***及实现方法
CN101222476A (zh) 一种可扩展标记语言文件编辑器、文件传输方法及***
CN104283567A (zh) 一种名称数据的压缩、解压缩方法及设备
US8937564B2 (en) System, method and non-transitory computer readable medium for compressing genetic information
CN103561057A (zh) 基于分布式哈希表和纠删码的数据存储方法
CN105095237A (zh) 用于生成非关系数据库的模式的方法和设备
US11070231B2 (en) Reducing storage of blockchain metadata via dictionary-style compression
CN104182484A (zh) 一种实现HBase数据与Java域对象映射的方法和装置
CN103995887A (zh) 位图索引压缩方法和位图索引解压方法
CN105468371A (zh) 一种基于主题聚类的业务流程图合并方法
CN103116654B (zh) 一种xml数据节点编码压缩方法
CN113901280B (zh) 一种集成电路展平式设计的字符串存储与查询***及方法
CN103020144B (zh) 文件管理***和文件管理方法
CN105205355A (zh) 一种基于语义角色位置映射的文本水印嵌入及提取方法
CN104484337B (zh) Xml文档的存储方法
CN105488471B (zh) 一种字形识别方法及装置
CN102779161B (zh) 基于rdf知识库的语义标注方法
CN108366050A (zh) 一种通用通信协议处理方法
CN102214170A (zh) 一种xml数据压缩和解压缩方法及***
CN106294548A (zh) 一种溯源数据的压缩方法及***
CN105468712A (zh) 一种数据存储兼容方法
Vajha et al. Small-d MSR Codes With Optimal Access, Optimal Sub-Packetization, and Linear Field Size
CN103699646B (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