[发明专利]一种支持XML数据动态更新的编码方法无效
申请号: | 201110380643.X | 申请日: | 2011-11-25 |
公开(公告)号: | CN102446218A | 公开(公告)日: | 2012-05-09 |
发明(设计)人: | 吴明晖;侯宏仑;霍梅梅;余胜;陈天洲;孙霖 | 申请(专利权)人: | 浙江大学城市学院 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 杭州宇信知识产权代理事务所(普通合伙) 33231 | 代理人: | 张宇娟 |
地址: | 310015*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 支持 xml 数据 动态 更新 编码 方法 | ||
技术领域
本发明属于XML格式数据处理技术领域,涉及一种支持XML数据动态更新的编码方法。
背景技术
由于具有半结构性、开放性、异构性、可扩展性、灵活性等特点,XML已经成为互联网上数据表示和交换的事实标准。随着网络技术的迅速发展,越来越多的数据采用XML格式存储,如何快速有效地存储XML数据,并提供高效的XML数据查询处理,已成为当前研究的一个热点。互联网应用对用XML格式表示和存储数据的需求不断增加,XML数据存储一般通过对XML树结构按特定规则进行编码来实现。通过给XML树中的每个节点分配一个隐含位置关系的编码,就可以直接比较两个节点编码来确定它们之间的结构关系。
W3C工作组针对XML数据查询开发了XPath和XQuery查询语言,其共同特征是通过路径表达式来实现XML文档查询。执行路径查询的主要技术是结构连接,即确定两个节点之间的结构关系(祖先后裔关系或父子关系等)。而节点之间结构关系的确定主要依赖于有效的XML树节点编码方法。XML编码就是按照一定规则给XML文档树中每个节点分配一个隐含位置关系的编码,在不遍历XML文档树的前提下通过比较两个节点的编码直接判断两个节点之间是否存在父子、祖先-后裔、兄弟、前驱、后继等结构关系。
目前与XML数据存储与编码的研究成果比较多,其中主要有两大类方法:基于区间的编码和基于路径的编码。其中,基于区间的编码方案利用XML文档有序的特点,根据每一个元素节点在原XML文档中出现的顺序给每一个元素节点赋予一个编码;而基于路径的编码方案则是利用XML文档嵌套的特点, 根据XML文档嵌套结构,给文档根节点及从文档根节点开始所能到达的每条路径的其他节点赋予一个编码。
XML动态性是指对XML文档的插入、删除和更新操作的支持。由于XML文档的删除和更新操作不会涉及对已有XML节点编码的改变,因此对于XML编码机制来说,动态性就是能为新插入的节点分配合法的编码。完全支持动态更新的XML编码是指在任意位置插入一个新节点时,可以得到一个合法的编码,而不用修改已存在的任何节点编码。
事实上,对编码支持动态更新的研究可以转化为研究如何在两个值之间插入一个中间值,使得这个中间值不但能保持既有的大小顺序,而且在插入这个中间值后不会引起对其他已存在值的重新分配。
在已公布的动态编码方法中,压缩动态四级字符串算法(简称:CDQS)是最优秀的,但是CDQS使用递归的方法生成节点编码,需要在编码前得到编码所要表示的范围,然后递归地生成第1/3和第2/3处的编码,在性能和编码空间存储上均存在有明显的缺陷。
发明内容
为解决上述问题,本发明的目的在于提供一种支持XML数据动态更新的编码方法,以提高编码的效率,并降低编码的存储空间成本。
为实现上述目的,本发明的技术方案为:
一种支持XML数据动态更新的编码方法,为XML树中的每个节点分配一个隐含位置关系的编码,以直接比较两个节点编码来确定它们之间的结构关系;以父节点的编号为前缀,加上该节点在本层的唯一层编码构成节点的编号,而当根节点没有父节点时,其编码为1;对于新插入的节点n,当n作为叶节点的子节点插入时,n的层编码为2;而当n作为非叶节点的孩子节点插入时,分为最左插入、中间插入和最右插入,根据该三种不同的情况由扩展字节进制编码动态插入算法生成新的节点编码。
进一步地,每个子节点的扩展字节进制编码为父节点编码后接255作为段分隔符连接层编码,最左子节点的层编码为2,其他子节点的层编码为其左兄弟节点层编码加1。
进一步地,对于新插入的节点n,当n作为非叶节点的最左子节点插入时,n的层编码为:将n右兄弟节点的层编码在第一个非1节之后截断,并将最右节减1。
进一步地,对于新插入的节点n,当n作为非叶节点的中间节点插入时,n的层编码为:从左至右逐节比较n的左右兄弟节点的层编码,直到在某一节上不相等,如果左右兄弟节点的层编码在此节相差大于1,将左兄弟节点层编码在此节加1并舍去其后所有节。
进一步地,对于新插入的节点n,当n作为非叶节点的中间节点插入时,n的层编码为:从左至右逐节比较n的左右兄弟节点的层编码,直到在某一节上不相等,如果左右兄弟节点的层编码在此节相差等于1,并且右兄弟层编码没有结束,则将右兄弟节点层编码的这一节减1并舍去其后所有节;而如果左右兄弟节点的层编码在此节相差等于1并且左兄弟层编码没有结束,则将左兄弟节点层编码的下一节加1并舍去其后所有节。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学城市学院,未经浙江大学城市学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110380643.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:具有集成被动阻尼器的电磁致动器
- 下一篇:吸附塔
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置