CN103116654A - 一种xml数据节点编码压缩方法 - Google Patents
一种xml数据节点编码压缩方法 Download PDFInfo
- Publication number
- CN103116654A CN103116654A CN2013100705667A CN201310070566A CN103116654A CN 103116654 A CN103116654 A CN 103116654A CN 2013100705667 A CN2013100705667 A CN 2013100705667A CN 201310070566 A CN201310070566 A CN 201310070566A CN 103116654 A CN103116654 A CN 103116654A
- Authority
- CN
- China
- Prior art keywords
- coding
- xml
- node
- compression method
- document tree
- 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
Links
Images
Abstract
本发明公开了一种XML数据节点编码压缩方法,所述方法包括:将XML数据生成XML文档树;对XML文档树中的每个节点进行编码;对节点编码进行压缩存储;本发明是一种无损的压缩方法,具有简单易用的特点,编码及其编码压缩规则简单,便于理解和编程实现,能够快速解压,利于编码操作;在压缩时依然保持了编码的结构信息,因此无需解压便可直接比较比特串来判断节点间的特定结构关系,并且采用分段压缩,编码的各个整数互不影响,在进行解压操作时,不需全部解压比特串,可按所需顺序分段解压,提高了编码操作的性能。
Description
技术领域
本发明涉及数据库领域,尤其涉及一种简单易用的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 (3)
1.一种XML数据节点编码压缩方法,其特征在于,所述方法包括:
将XML数据生成XML文档树;
对XML文档树中的每个节点进行编码;
对节点编码进行压缩存储。
2.根据权利要求1所述的XML数据节点编码压缩方法,其特征在于,所述文档树中每个节点编码前包括对文档树进行节点整数的分配和连接。
3.根据权利要求1所述的XML数据节点编码压缩方法,其特征在于,所述节点编码的存储是对编码中的整数先后分段压缩为二进制比特串的形式进行存储。
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 true CN103116654A (zh) | 2013-05-22 |
CN103116654B 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) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017032170A1 (zh) * | 2015-08-21 | 2017-03-02 | 华为技术有限公司 | 镜像文件的导入方法及装置 |
CN107797973A (zh) * | 2017-09-27 | 2018-03-13 | 西安交通大学 | 一种面向硬件实现的gbdt分类模型压缩方法 |
CN111130860A (zh) * | 2019-12-11 | 2020-05-08 | 中盈优创资讯科技有限公司 | 网络拓扑管理方法及装置、网络拓扑查询方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101615190A (zh) * | 2009-07-31 | 2009-12-30 | 复旦大学 | 安全的xml关键字检索方法 |
-
2013
- 2013-03-06 CN CN201310070566.7A patent/CN103116654B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101615190A (zh) * | 2009-07-31 | 2009-12-30 | 复旦大学 | 安全的xml关键字检索方法 |
Non-Patent Citations (1)
Title |
---|
仲志平等: "有效的XML树结构压缩", 《安徽师范大学学报(自然科学版)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017032170A1 (zh) * | 2015-08-21 | 2017-03-02 | 华为技术有限公司 | 镜像文件的导入方法及装置 |
CN107797973A (zh) * | 2017-09-27 | 2018-03-13 | 西安交通大学 | 一种面向硬件实现的gbdt分类模型压缩方法 |
CN111130860A (zh) * | 2019-12-11 | 2020-05-08 | 中盈优创资讯科技有限公司 | 网络拓扑管理方法及装置、网络拓扑查询方法及装置 |
CN111130860B (zh) * | 2019-12-11 | 2023-04-07 | 中盈优创资讯科技有限公司 | 网络拓扑管理方法及装置、网络拓扑查询方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103116654B (zh) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8175875B1 (en) | Efficient indexing of documents with similar content | |
CN101800556B (zh) | 数据传输及编码数据字符串的方法 | |
TWI480744B (zh) | 搜尋索引格式之最佳化 | |
CN102122960B (zh) | 一种针对二进制数据的多字符组合无损数据压缩方法 | |
CN101222476B (zh) | 一种可扩展标记语言文件编辑器、文件传输方法及系统 | |
US11070231B2 (en) | Reducing storage of blockchain metadata via dictionary-style compression | |
CN101271478B (zh) | 基于聚类分块的只读兴趣点数据库压缩存储方法 | |
CN113901280B (zh) | 一种集成电路展平式设计的字符串存储与查询系统及方法 | |
CN103020144B (zh) | 文件管理系统和文件管理方法 | |
CN103365991A (zh) | 一种基于一维线性空间实现Trie树的词典存储管理方法 | |
CN102214170B (zh) | 一种xml数据压缩和解压缩方法及系统 | |
CN104572685A (zh) | 数据排序方法 | |
CN103116654A (zh) | 一种xml数据节点编码压缩方法 | |
CN103701470B (zh) | 一种流智能预测差异压缩算法及相应的控制装置 | |
CN100578943C (zh) | 一种优化的霍夫曼解码方法和装置 | |
CN114268323B (zh) | 支持行存的数据压缩编码方法、装置及时序数据库 | |
CN105468712A (zh) | 一种数据存储兼容方法 | |
CN105515586A (zh) | 一种快速差量压缩方法 | |
CN111447188B (zh) | 基于语言隐写特征空间的无载体文本隐写方法 | |
CN102508690B (zh) | 一种嵌入式设备的命令行的保存方法和解码方法 | |
CN109446198B (zh) | 一种基于双数组的trie树节点压缩方法及装置 | |
CN105631000A (zh) | 基于移动终端位置特征信息的终端缓存的数据压缩方法 | |
CN104682966A (zh) | 列表数据的无损压缩方法 | |
CN107291574B (zh) | 基于解释系统的备份数据恢复主键生成方法 | |
CN105490683B (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 |