《一种XML数据节点编码压缩方法.pdf》由会员分享,可在线阅读,更多相关《一种XML数据节点编码压缩方法.pdf(7页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103116654 A(43)申请公布日 2013.05.22CN103116654A*CN103116654A*(21)申请号 201310070566.7(22)申请日 2013.03.06G06F 17/30(2006.01)(71)申请人同方知网(北京)技术有限公司地址 100084 北京市海淀区清华园清华大学36区华业大厦B1410、1412、1414室(72)发明人陈琳 王奎 宋洋 夏冬(74)专利代理机构北京天奇智新知识产权代理有限公司 11340代理人刘黎明(54) 发明名称一种XML数据节点编码压缩方法(57) 摘要本发明公开了一种XML数据节点编码。
2、压缩方法,所述方法包括:将XML数据生成XML文档树;对XML文档树中的每个节点进行编码;对节点编码进行压缩存储;本发明是一种无损的压缩方法,具有简单易用的特点,编码及其编码压缩规则简单,便于理解和编程实现,能够快速解压,利于编码操作;在压缩时依然保持了编码的结构信息,因此无需解压便可直接比较比特串来判断节点间的特定结构关系,并且采用分段压缩,编码的各个整数互不影响,在进行解压操作时,不需全部解压比特串,可按所需顺序分段解压,提高了编码操作的性能。(51)Int.Cl.权利要求书1页 说明书4页 附图1页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明书4页 附图1。
3、页(10)申请公布号 CN 103116654 ACN 103116654 A1/1页21.一种XML数据节点编码压缩方法,其特征在于,所述方法包括:将XML数据生成XML文档树;对XML文档树中的每个节点进行编码;对节点编码进行压缩存储。2.根据权利要求1所述的XML数据节点编码压缩方法,其特征在于,所述文档树中每个节点编码前包括对文档树进行节点整数的分配和连接。3.根据权利要求1所述的XML数据节点编码压缩方法,其特征在于,所述节点编码的存储是对编码中的整数先后分段压缩为二进制比特串的形式进行存储。权 利 要 求 书CN 103116654 A1/4页3一种 XML 数据节点编码压缩方法技。
4、术领域0001 本发明涉及数据库领域,尤其涉及一种简单易用的XML数据节点编码压缩方法。背景技术0002 随着XML逐渐成为广泛应用的数据表现形式,如何对XML数据进行高效的管理也成为一个重要的问题。对于需要大量管理XML数据的数据库管理系统来说,为了有效支持XML查询,特别是结构查询,研究者已经提出了XML数据节点的各种编码方案。所谓XML编码指的是使用特定的编码策略对XML文档树中的元素、属性和其他语义实体赋予一个唯一的编码。对XML数据进行有效编码,可以迅速确定XML文档树中任意节点间的结构关系,例如:父子关系、祖先关系及文档顺序等,不需遍历XML文档树,从而提高了结构查询的效率。000。
5、3 对现有的技术文献检索发现,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编码直接将父节点的编码作为子节点的前缀。该编码方式能反映节点间的兄弟及继承关系,有效地支。
6、持了结构关系计算。但动态更新XML数据后需要重新编码,且编码没有采用压缩方式存储,造成了存储空间浪费。0004 Patrick ONeil在论文“ORDPATHs:Insert-Firendly XML Node Labels”中提出的ORDPATH编码是一种扩展的Dewey编码。逻辑涵义上,ORDPATH的每个节点对应编码的一部分,如节点编码为1的三个子节点分别编码为1.1、1.3与1.5,以此类推。实际表示时,它采用二进制的形式对编码进行了压缩,其结构由Li/Oi比特串构成,且一个Li/Oi对应于ORDPATH编码中的一部分,Li表示紧跟其后的Oi的比特数,使用前缀编码方式表示,Oi存储的。
7、是相对该比特数所在区间开始值的差值。ORDPATH编码也是一种前缀编码,可通过比较前缀反映节点的兄弟、继承关系,且其采用压缩方法存储,具有较高的压缩比,但相应的压缩规则复杂,因此存在解压缩过程复杂的缺点,不利于在大规模XML数据的结构查询中进行快速的节点编码操作。发明内容0005 为解决上述技术中存在的问题与缺陷,本发明提供了一种XML数据节点编码压缩方法。所述技术方案如下:0006 一种XML数据节点编码压缩方法,包括:0007 将XML数据生成XML文档树;0008 对XML文档树中的每个节点进行编码;0009 对节点编码进行压缩存储。说 明 书CN 103116654 A2/4页4001。
8、0 本发明提供的技术方案的有益效果是:0011 是一种无损的压缩方法,具有简单易用的特点,编码及其编码压缩规则简单,便于理解和编程实现,能够快速解压,利于编码操作。0012 在压缩时依然保持了编码的结构信息,因此无需解压便可直接比较比特串来判断节点间的特定结构关系,并且采用分段压缩,编码的各个整数互不影响,在进行解压操作时,不需全部解压比特串,可按所需顺序分段解压,提高了编码操作的性能。附图说明0013 图1是XML数据节点编码压缩方法流程图;0014 图2是XML文档树结构示意图。具体实施方式0015 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
9、:0016 如图1所示,提供了XML数据节点编码压缩方法流程,包括:0017 步骤10将XML数据生成XML文档树;0018 在生成上述文档树的过程中不区分元素节点、属性节点和文本节点。为形象说明该过程,例如下面的XML文档:0019 说 明 书CN 103116654 A3/4页50020 对其构件的XML文档树结构如图2所示。0021 步骤20对XML文档树中的每个节点进行编码;0022 进行编码前首先对文档树的每个节点分配一个整数,分配方法如下:0023 (1)如果节点为根节点则分配整数1。0024 (2)如果节点不是叶子节点则为其子节点自左到右分配整数1、3、5,初始时分配的是正奇数,。
10、偶数保留。0025 按照上述方法遍历一遍文档树即可完成节点整数的分配并连接,然后对每个节点进行编码,编码规则为从根节点到某节点的路径上的所有整数以符号“.”进行连接作为该节点的编码;即若节点不为根节点,则节点编码由其父节点编码与代表该节点在父节点的所有子节点中的位置的整数以“.”进行连接构成;若节点为根节点则编码直接为其分配整数。如图2所示节点BOOK为根节点则其编码为“1”,节点ISBN是根节点的第一个子节点则其编码为1.1。0026 步骤30对节点编码进行压缩存储。0027 存储方式采用二进制比特串的形式,如若直接存储编码中的整数,会存在很多冗余的比特位,造成物理存储空间浪费,因而采用压缩。
11、方式存储,存储时按编码中整数的先后顺序分段压缩为二进制串,但忽略连接符号“.”不存储。编码的二进制存储形式为:L0B0L1B1,其中一对LB表示一个整数,L表示紧跟其后的比特串的位数,L的设定为形如说 明 书CN 103116654 A4/4页6比特串“(1)n0”表示紧跟其后的整数B的位数为n+7,n表示比特1的个数,B表示编码中整数的二进制串,之所以加7是因为实际应用中编码后的整数的位数大多为8位,利于数据编码在内存中按字节对齐。L的各种比特串以及其表示的B的位数和范围如表1所示:0028 表10029 比特串L B的位数B的范围0 7 1,12710 8 128,255110 9 256。
12、,5111110 10 512,102311110 11 1024,2047111110 12 2048,4095. . .0030 例如,图2中的节点CAPTION的编码为“1.3.5.1”,整数1、3、5的范围都在1,127范围内,则L的比特串为0,紧跟其后的整数的比特串B为7位,则编码“1.3.5.1”的二进制串为:“00000001000000110000010100000001”。0031 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。说 明 书CN 103116654 A1/1页7图1图2说 明 书 附 图CN 103116654 A。