CN102096706A - 一种变步长xml编码方法 - Google Patents

一种变步长xml编码方法 Download PDF

Info

Publication number
CN102096706A
CN102096706A CN201110001240XA CN201110001240A CN102096706A CN 102096706 A CN102096706 A CN 102096706A CN 201110001240X A CN201110001240X A CN 201110001240XA CN 201110001240 A CN201110001240 A CN 201110001240A CN 102096706 A CN102096706 A CN 102096706A
Authority
CN
China
Prior art keywords
node
coding
pace
last
encoded
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
CN201110001240XA
Other languages
English (en)
Other versions
CN102096706B (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.)
Peking University
Original Assignee
Peking University
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 Peking University filed Critical Peking University
Priority to CN 201110001240 priority Critical patent/CN102096706B/zh
Publication of CN102096706A publication Critical patent/CN102096706A/zh
Application granted granted Critical
Publication of CN102096706B publication Critical patent/CN102096706B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

本发明公开了一种变步长XML编码方法,属于数据库存储领域。本方法为:1)设定XML文档编码的步长值为PACE;2)对于新插入的XML节点r:如果r作为某非叶节点j的第一个子节点插入时,则将j中原第一个子节点编码最后一位减去PACE作为r的编码;如果r作为j的最后一子节点插入时,则将j中原最后一子节点编码最后一位加上PACE作为r的编码;r在两兄弟节点之间插入时,如果两兄弟节点编码第一位相等且最后一位PACE内的整数没有用完,则r编码最后一位为PACE内一整数,否则采用DDE方法对r进行编码;如果r作为某叶节点k的子节点插入,则将k编码后面增加一成分1作为r的编码。本方法大大提高了编码效率。

Description

一种变步长XML编码方法
技术领域
本发明与数据库管理系统相关,涉及数据库存储领域,是一种能有效支持XML文档更新的编码方法。
背景技术
多版本XML树存储能够使XML树的存储既能应用于关系数据库管理系统,又能应用于XML数据库管理系统。
多版本XML树存储一般通过对XML树按特定规则进行编码来实现的。
目前与多版本XML树存储相关的成果较多,其中比较经典的是ORDPATH编码方法和PRE/POST编码方法。
在ORDPATH编码中,其过程相当于使用步长为2的RX-DDE编码。初始编码中数字都是1,3,5,7等奇数和正数。只有奇数才是编码中的有效部分。所以,ORDPATH编码并不直接包含节点的层次信息,在进行层次关系判断时,会带来额外开销。
在PRE/POST编码中,每个节点被编译为一个三元组<prc,post,level>(有时也用四元组,加上XML文档的ID号,就是<DocID,pre,post,level>)。其中pre,post是通过对XML文档进行深度先序优先周游获取,level代表了节点在XML树中的层次。但是PRE/POST编码无法判断兄弟关系且不支持文档的即时更新。
发明内容
本发明针对XML节点编码在插入节点后需要更新,克服上述现有相应编码技术存在的不足,开发出一种带步长的扩展Dewy编码(简称RX-DDE),它是一种能有效支持XML文档的更新,保留节点在XML树上的层次信息,降低两点关系判断时的代价,具有嵌入性的多版本XML树编码方法。
本发明的技术方案为:
一种变步长XML编码方法,其步骤为:
1)设定XML文档编码的步长值为PACE,第一次为XML文档编码时采用步长PACE进行编码;其中,PACE>1;
2)在后续某一次编码时,对于新插入的XML节点r,
a)如果节点r作为某非叶节点j的第一个子节点插入时,则将节点j中原第一个子节点编码最后一位减去PACE,作为节点r的编码;
b)如果节点r作为节点j的最后一个子节点插入时,则将节点j中原最后一个子节点编码最后一位加上PACE,作为节点r的编码;
c)节点r在两兄弟节点之间插入时;如果两兄弟节点编码第一位相等且最后一位PACE内的整数没有用完,则节点r编码最后一位取值介于两兄弟节点编码最后一位之间的一整数;如果两兄弟节点编码第一位相等且最后一位PACE内的整数已用完,则采用DDE的编码方法对新插入节点r进行编码;如果两兄弟节点编码第一位不相等,则采用DDE的编码方法对节点r进行编码;
d)如果节点r作为某叶节点k的子节点插入,则将叶节点k编码后面增加一成分1作为节点r的编码。
进一步的,所述1)中,第一次编码为XML文档编码时采用步长为PACE的Dewey编码方法进行编码。
进一步的,所述c)中,设节点r的编码为(c1c2...cm),节点r为在左兄弟编码(a1a2..am)与右兄弟编码(b1b2...bm)之间插入;如果ai=bi(1≤i≤m-1)且最后一位PACE内的整数没有用完,则ci=ai(1≤i≤m-1),且cm为介于am与bm之间的一整数;其中,m为自然数。
进一步的,所述cm=(am+bm)/2。
进一步的,所述c)中,设节点r的编码为(c1c2...cm),节点r为在左兄弟编码(a1a2..am)与右兄弟编码(b1b2...bm)之间插入;如果ai=bi(1≤i≤m-1)且最后一位PACE内的整数已用完,则ci=ai+bi(1≤i≤m);其中,m为自然数。
进一步的,所述c)中,设节点r的编码为(c1c2...cm),节点r为在左兄弟编码(a1a2..am)与右兄弟编码(b1b2...bm)之间插入;如果ai≠bi(1≤i≤m-1),则ci=ai+bi(1≤i≤m);其中,m为自然数。
进一步的,所述PACE取值为10。
本发明主要涉及多版本XML树编码方法,基于Dewy编码技术。针对XML树的更新的步骤为:
1.初始化编码
在原来的Dewey编码中,两个相邻兄弟节点的编码最后一位差值为1。在新的RX-DDE编码中,当第一次为XML文档编码的时候,首先设定一个步长值:PACE(PACE>1),它是两个相邻兄弟节点编码的最后一个数据的差值。
2.RX-DDE编码对新插入XML节点的处理
Figure BDA0000042819290000031
作为某节点(非叶节点)的第一个孩子(firstchild)插入时,把原第一个子节点编码的最后一位减去PACE,作为新插入XML节点的编码。
作为某节点(非叶节点)的最后一个孩子(lastchild)插入时,把原最后一个子节点编码的最后一位加上PACE,作为新插入XML节点的编码。
Figure BDA0000042819290000033
作为某叶节点的孩子插入,把该叶节点编码后面增加一个成分1作为新插入XML节点的编码,该叶结点成为父节点,新插入节点称为新的叶节点。
Figure BDA0000042819290000034
两兄弟之间插入,两兄弟编码的第一位相等,且最后一位步长之内的整数没有用完的情况下,设左兄弟编码a1a2..am,右兄弟编码b1b2...bm,且ai=bi(1≤i≤m-1),设新插入节点的编码是c1c2...cm,则ci=ai(1≤i≤m-1),且cm=(am+bm)/2。其中,m为自然数。
Figure BDA0000042819290000035
两兄弟之间插入,两兄弟编码的第一位相等,且最后一位步长之内的整数已经用完的情况下,设左兄弟编码:a1.a2.....am,右兄弟编码:b1.b2.....bm,且ai=bi(1≤i≤m-1)。设新插入节点编码为:c1.c2.....cm,则ci=ai+bi(1≤i≤m)。
Figure BDA0000042819290000036
两兄弟之间插入,两兄弟编码的第一位不相等的情况下,设左兄弟编码:a1.a2.....am,右兄弟编码:b1.b2.....bm,且ai≠bi(1≤i≤m-1)。设新插入节点编码为:c1.c2.....cm,则ci=ai+bi(1≤i≤m)。
与现有技术相比,本发明的积极效果为:
本发明方法所进行的实验涉及集中式插入和分散式插入,分别比较Dewy编码和RX-DDE编码方式的效率,RX-DDE编码的时间效率都更高。
附图说明
图1是RX-DDE初始编码;
图2是RX-DDE对新插入节点的处理过程。
具体实施方式
图2是RX-DDE对新插入节点的处理过程。
1.在最左边插入:如点G,只需把B点编码的最后一位减去PACE;
2.在最右边插入:如点H,只需把D点编码的最后一位加上PACE;
3.作为叶节点的孩子插入:如点I,把I的父节点(没有插入I之前是叶节点)编码后面增加一个成分1;
4.两兄弟之间插入,两兄弟编码的第一位相等,步长之内的整数没有用完的情况:如点N,在D和H之间插入,且D和H的编码第一位都是1,且D和H的编码最后一位之间还有整数没用完(D的最后一位是21,H的最后一位是31,21和31之间还有整数可用)。在这种情况下,左兄弟与右兄弟编码除了最后一位,其他位都相等。设左兄弟编码:a1.a2.....am,右兄弟编码:b1.b2.....bm,且ai=bi(1≤i≤m-1)。新插入节点编码除了最后一位,其他位也与左右兄弟编码相等。设新插入节点编码为:c1.c2.....cm,且ai=ci(1≤i≤m-1),编码最后一位cm=(am+bm)/2;
5.两兄弟之间插入,两兄弟编码的第一位相等,步长之内的整数已经用完的情况:如点K,它在E和J之间插入(这时候还没有插入M),且E和J的编码第一位都是1,且E和J的编码最后一位之间已经没有整数可用了(E的最后一位是1,J的最后一位是2,1和2之间没有整数可用)。在这种情况下,沿用DDE的编码方式:设左兄弟编码:a1.a2.....am,右兄弟编码:b1.b2.....bm,且ai=bi(1≤i≤m-1)。设新插入节点编码为:c1.c2.....cm,则ci=ai+bi(1≤i≤m)。
6.两兄弟之间插入,两兄弟编码的第一位不相等的情况:如点M,它在E和K之间插入,且E和K的编码第一位不相等(一个是1,一个是2)。设左兄弟编码:a1.a2.....am,右兄弟编码:b1.b2.....bm,且ai≠bi(1≤i≤m-1)。设新插入节点编码为:c1.c2.....cm。在这种情况下,也沿用DDE的编码方式:ci=ai+bi(1≤i≤m)。

Claims (7)

1.一种变步长XML编码方法,其步骤为:
1)设定XML文档编码的步长值为PACE,第一次为XML文档编码时采用步长PACE进行编码;其中,PACE>1;
2)在后续某一次编码时,对于新插入的XML节点r,
a)如果节点r作为某非叶节点j的第一个子节点插入时,则将节点j中原第一个子节点编码最后一位减去PACE,作为节点r的编码;
b)如果节点r作为节点j的最后一个子节点插入时,则将节点j中原最后一个子节点编码最后一位加上PACE,作为节点r的编码;
c)节点r在两兄弟节点之间插入时;如果两兄弟节点编码第一位相等且最后一位PACE内的整数没有用完,则节点r编码最后一位取值介于两兄弟节点编码最后一位之间的一整数;如果两兄弟节点编码第一位相等且最后一位PACE内的整数已用完,则采用DDE的编码方法对新插入节点r进行编码;如果两兄弟节点编码第一位不相等,则采用DDE的编码方法对节点r进行编码;
d)如果节点r作为某叶节点k的子节点插入,则将叶节点k编码后面增加一成分1作为节点r的编码。
2.如权利要求1所述的方法,其特征在于所述1)中,第一次编码为XML文档编码时采用步长为PACE的Dewey编码方法进行编码。
3.如权利要求2所述的方法,其特征在于所述c)中,设节点r的编码为(c1c2...cm),节点r为在左兄弟编码(a1a2..am)与右兄弟编码(b1b2...bm)之间插入;如果ai=bi(1≤i≤m-1)且最后一位PACE内的整数没有用完,则ci=ai(1≤i≤m-1),且cm为介于am与bm之间的一整数;其中,m为自然数。
4.如权利要求3所述的方法,其特征在于所述cm=(am+bm)/2。
5.如权利要求2或3所述的方法,其特征在于所述c)中,设节点r的编码为(c1c2...cm),节点r为在左兄弟编码(a1a2..am)与右兄弟编码(b1b2...bm)之间插入;如果ai=bi(1≤i≤m-1)且最后一位PACE内的整数已用完,则ci=ai+bi(1≤i≤m);其中,m为自然数。
6.如权利要求2或3所述的方法,其特征在于所述c)中,设节点r的编码为(c1c2...cm),节点r为在左兄弟编码(a1a2..am)与右兄弟编码(b1b2...bm)之间插入;如果ai≠bi(1≤i≤m-1),则ci=ai+bi(1≤i≤m);其中,m为自然数。
7.如权利要求1或2或3所述的方法,其特征在于所述PACE取值为10。
CN 201110001240 2011-01-05 2011-01-05 一种变步长xml编码方法 Expired - Fee Related CN102096706B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110001240 CN102096706B (zh) 2011-01-05 2011-01-05 一种变步长xml编码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110001240 CN102096706B (zh) 2011-01-05 2011-01-05 一种变步长xml编码方法

Publications (2)

Publication Number Publication Date
CN102096706A true CN102096706A (zh) 2011-06-15
CN102096706B CN102096706B (zh) 2013-03-06

Family

ID=44129801

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110001240 Expired - Fee Related CN102096706B (zh) 2011-01-05 2011-01-05 一种变步长xml编码方法

Country Status (1)

Country Link
CN (1) CN102096706B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446218A (zh) * 2011-11-25 2012-05-09 浙江大学城市学院 一种支持xml数据动态更新的编码方法
CN105608092A (zh) * 2014-11-24 2016-05-25 北大方正集团有限公司 一种创建动态索引的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1455901A (zh) * 2000-10-06 2003-11-12 佳能株式会社 Xml编码方案
JP2005215951A (ja) * 2004-01-29 2005-08-11 Kddi Corp 文書データの符号化又は復号化方法及びそのプログラム
CN1720522A (zh) * 2002-12-03 2006-01-11 西门子公司 基于xml的文档的编码方法
CN1998241A (zh) * 2004-07-14 2007-07-11 西门子公司 对xml文档编码的方法及解码方法、编码和解码方法、编码装置、解码装置以及编码和解码装置
EP2230608A1 (en) * 2009-03-18 2010-09-22 Canon Kabushiki Kaisha Method and associated device and data structure for coding or decoding a structured document by means of an XML schema

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1455901A (zh) * 2000-10-06 2003-11-12 佳能株式会社 Xml编码方案
CN1720522A (zh) * 2002-12-03 2006-01-11 西门子公司 基于xml的文档的编码方法
JP2005215951A (ja) * 2004-01-29 2005-08-11 Kddi Corp 文書データの符号化又は復号化方法及びそのプログラム
CN1998241A (zh) * 2004-07-14 2007-07-11 西门子公司 对xml文档编码的方法及解码方法、编码和解码方法、编码装置、解码装置以及编码和解码装置
EP2230608A1 (en) * 2009-03-18 2010-09-22 Canon Kabushiki Kaisha Method and associated device and data structure for coding or decoding a structured document by means of an XML schema

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吴海涛,唐振民: "《XML文档的Dewey编码生成算法》", 《计算机工程》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446218A (zh) * 2011-11-25 2012-05-09 浙江大学城市学院 一种支持xml数据动态更新的编码方法
CN105608092A (zh) * 2014-11-24 2016-05-25 北大方正集团有限公司 一种创建动态索引的方法及装置
CN105608092B (zh) * 2014-11-24 2020-07-14 北大方正集团有限公司 一种创建动态索引的方法及装置

Also Published As

Publication number Publication date
CN102096706B (zh) 2013-03-06

Similar Documents

Publication Publication Date Title
CN106570356B (zh) 基于Unicode编码的文本水印嵌入及提取方法
CN110795556B (zh) 一种基于细粒度插入式解码的摘要生成方法
CN104751342B (zh) 一种用于追溯商品的商品信息编解码方法
CN103246857B (zh) 一种使用形式化解码规则解析异构编码获得物品信息的方法
CN103518387A (zh) 编码网格模型的方法、已编码网格模型和解码网格模型的方法
CN102819609B (zh) 一种持久化数据模型建模方法
EP1429265A3 (en) System and method for coding and retrieval of a CAD drawing from a database
CN102096706B (zh) 一种变步长xml编码方法
CN104426896A (zh) 一种专题页面制作方法和装置
CN102779161B (zh) 基于rdf知识库的语义标注方法
CN103902679A (zh) 搜索推荐方法和装置
CN107291832A (zh) 一种基于列表存储结构的数据存储方法
Kuśmirek et al. Linking De Novo Assembly Results with Long DNA Reads Using the dnaasm‐link Application
CN102446218A (zh) 一种支持xml数据动态更新的编码方法
Battail Heredity as an encoded communication process
CN112433986A (zh) 数据的存储方法、电子设备以及计算机可读存储介质
CN114647764B (zh) 图结构的查询方法、装置及存储介质
CN102651795B (zh) 游长缩减的二元序列压缩编码方法
CN103116654A (zh) 一种xml数据节点编码压缩方法
CN114678074A (zh) 一种隐藏寻址的dna存储编码设计方法
Kreps Energy Sprawl in the Renewable‐Energy Sector: Moving to Sufficiency in a Post‐Growth Era
CN115221361A (zh) 一种基于属性图模型存储和编码图数据的方法
CN103186514A (zh) 用于实现文档结构化的方法和装置
CN104682966A (zh) 列表数据的无损压缩方法
CN114385624A (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130306

Termination date: 20160105

EXPY Termination of patent right or utility model