CN102096706A - 一种变步长xml编码方法 - Google Patents
一种变步长xml编码方法 Download PDFInfo
- 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
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树存储相关的成果较多,其中比较经典的是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节点的处理
作为某节点(非叶节点)的最后一个孩子(lastchild)插入时,把原最后一个子节点编码的最后一位加上PACE,作为新插入XML节点的编码。
两兄弟之间插入,两兄弟编码的第一位相等,且最后一位步长之内的整数没有用完的情况下,设左兄弟编码a1a2..am,右兄弟编码b1b2...bm,且ai=bi(1≤i≤m-1),设新插入节点的编码是c1c2...cm,则ci=ai(1≤i≤m-1),且cm=(am+bm)/2。其中,m为自然数。
两兄弟之间插入,两兄弟编码的第一位相等,且最后一位步长之内的整数已经用完的情况下,设左兄弟编码:a1.a2.....am,右兄弟编码:b1.b2.....bm,且ai=bi(1≤i≤m-1)。设新插入节点编码为:c1.c2.....cm,则ci=ai+bi(1≤i≤m)。
两兄弟之间插入,两兄弟编码的第一位不相等的情况下,设左兄弟编码: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。
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)
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)
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 |
-
2011
- 2011-01-05 CN CN 201110001240 patent/CN102096706B/zh not_active Expired - Fee Related
Patent Citations (5)
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)
Title |
---|
吴海涛,唐振民: "《XML文档的Dewey编码生成算法》", 《计算机工程》 * |
Cited By (3)
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 |