[发明专利]安全的XML关键字检索方法无效
申请号: | 200910055812.5 | 申请日: | 2009-07-31 |
公开(公告)号: | CN101615190A | 公开(公告)日: | 2009-12-30 |
发明(设计)人: | 杨卫东;李晓东 | 申请(专利权)人: | 复旦大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海正旦专利代理有限公司 | 代理人: | 陆 飞;盛志范 |
地址: | 20043*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 安全 xml 关键字 检索 方法 | ||
1.一种安全的XML关键字检索方法,其特征在于具体步骤如下:
1)建立基于模式Schema安全说明的XML索引,首先对XML文档的Schema 建立安全说明,然后通过对XML文档进行深度优先遍历,使用Dewey编码的方 式对节点进行编码,在遍历过程中同时考虑到Schema的安全说明,当遍历完一 遍XML文档树时,即建立了基于Schema的安全说明的索引;索引的结构是倒 排索引,以键-值对的结构存放,键即是关键字,值即是关键字在XML文档中所 在节点的Dewey编码组成的列表,同时,值列表中每个节点还维护一个list变量, 用于存放与此节点条件相关的节点信息;
2)根据基于Schema安全说明的XML索引寻找SSLCA,运行时,用户提 交关键字查询,通过倒排索引计算出关键字的SLCA节点的Dewey编码值,利 用每个节点list变量存放的信息对SLCA节点进行剪枝和淘汰,得到最后的 SSLCA节点;
3)最后把得到的SSLCA节点返回给用户;
其中,所述基于模式Schema安全说明建立XML索引的具体步骤如下:
1)为XML文档中的每个节点v维护两部分信息:一是节点的Dewey编码, 用v.deweyNo表示;二是对每个条件访问的节点,维护一个与这个节点条件相关 的节点列表,用v.list表示;
2)在遍历XML文档树的过程中,为每个节点v计算Dewey编码的同时进 行如下操作:如果v是一个不可访问节点,则在v.list中存放一个标识符“N”,表 示节点v不可访问;如果v是一个条件访问的节点,在Schema中找出与节点v 的节点类型条件相关的节点类型,取这两种节点类型的最低公共祖先,标识为M; 然后在XML文档中,自底向上找出节点v的祖先中类型为M的节点,标识为m, 则m<v,并且与节点v条件相关的节点必然在节点m的子节点中;把节点m的 子节点中与节点v条件相关的所有节点的值放入v.list中即可获得与节点v条件 相关的所有节点的信息;如果遍历到节点v时,节点m的子节点还没有被遍历 到,就在节点v里面记录下节点m的Dewey编码,当下次遍历到节点m的其他 子节点时再把这些子节点中所有与节点v条件相关的节点的Dewey编码放入 v.list中;当一次遍历完整个XML文档树后,基于模式Schema的安全说明的索 引就建立起来了;
所述基于模式Schema安全说明的XML索引计算SSLCA的做法如下:
从给出的关键字集合W={wi|i=1,...,k}中,找出一个符合这些关键字查询的 SLCA节点的集合L,然后从集合L中逐个取出SLCA来,并判断当前被取出来 的SLCA节点是否满足安全说明;具体分以下四个步骤:
步骤(1)先判断以当前SLCA节点为根的子树,简称“SLCA的子树”, 是否包含不可访问节点,如果不包含则直接跳转到步骤(3),如果包含就把所有 的不可访问节点从这个SLCA子树中裁剪掉;
步骤(2)再判断被裁剪过的SLCA的子树是否包含所有关键字,如果包含, 则到转步骤(3),否则直接转到步骤(4);
步骤(3)使用自底向上的方法找出从这个SLCA节点到Schema的根节点 的路径,然后根据所建立的XML索引使用自顶向下的方法,从根节点到这个 SLCA节点逐个判断在这条路经上是否每个节点和SLCA子树的节点是否都满足 各自的安全说明,如果不满足则到步骤(4),全部满足则保留该SLCA,使其成为 一个SSLCA;
步骤(4)把当前的SLCA从L中删除;
其中,XML为可扩充标记语言,SLCA为最小最低公共祖先,SSLCA为安 全的最小最低公共祖先;有关概念的定义如下:
定义1:XML文档树,由一个2元组T表示,T=(V,E),value(dw)是在XML 文档树上进行的操作,其中:
V是树上所有节点的集合,并且每个节点都有唯一的Dewey编码;
是树上边的集合;
value(dw)函数,用来获得Dewey编码为dw的节点的值;
定义2:SLCA,一棵XML文档树上的一个节点被称为一组关键字集合W 的SLCA的节点,如果这个节点满足:(1)标签中或者后代节点的标签中包含所 有关键字,(2)没有任何一个后代节点是SLCA节点;
定义3:安全说明,安全说明S是一个二元组S=(D,ann),其中D表示一 个XML文档的Schema,为Schema上每条有向边定义一个函数ann(A,B),其中 A表示Schema上的一个节点,B表示节点A的子节点,如果函数ann(A,B)在 Schema上被显示定义的话会是下面的这样一个表达式:
ann(A,B)=Y|[q]|N
其中,Y,[q],N分别表示在一个Schema中节点A的子节点B是可访问, 条件访问和不可访问的,另外q是用XPath表示的条件访问语句;如果函数 ann(A,B)在Schema上没有被显式定义,节点B的可访问性就继承了节点A的 可访问性;如果函数ann(A,B)被显式定义,节点B的可访问性就覆盖了节点A 的可访问性;
定义4:条件访问的节点,在定义了安全说明的Schema上,如果一种类型 的节点需要满足某个条件才能被访问,称这种类型的节点为条件访问的节点;
定义5:SSLCA,一棵定义了安全访问规则的XML文档树上的一组关键字 集合W的SLCA节点被称为SSLCA节点,如果这个SLCA节点满足所有的安全访问 规则;
定义6:条件相关的节点,通过某条件访问节点的XPath条件语句所能访问 到的目标节点称为与此条件访问节点条件相关的节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910055812.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于骨科治疗的自动加压交锁髓内针
- 下一篇:一种狐狸的喂养方法