[发明专利]一种XML文档的流水线XPath查询方法、终端设备及存储介质有效
申请号: | 202011420888.6 | 申请日: | 2020-12-08 |
公开(公告)号: | CN112528082B | 公开(公告)日: | 2022-05-03 |
发明(设计)人: | 陈荣鑫;王宗跃;谢书童;王智谨;陈杰 | 申请(专利权)人: | 集美大学 |
主分类号: | G06F16/832 | 分类号: | G06F16/832;G06F16/81;G06F16/835 |
代理公司: | 厦门市精诚新创知识产权代理有限公司 35218 | 代理人: | 何家富 |
地址: | 361000 福*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 xml 文档 流水线 xpath 查询 方法 终端设备 存储 介质 | ||
1.一种XML文档的流水线XPath查询方法,其特征在于,包括以下步骤:
S1:获取输入的XML文档;
S2:获取输入的XPath查询表达式,并提取XPath查询表达式中包含的所有统计变量的类型;
S3:对XML文档进行解析,以获取XML文档对应的节点的区间编码信息和关系索引,同时根据提取的统计变量的类型对XML文档中的各统计变量进行统计并计算XML统计信息,XML统计信息包括包含均值和过滤率;
S4:根据获取的节点的区间编码信息、关系索引、XML统计信息以及XPath查询表达式,对XPath查询表达式包含的所有查询原语构建流水线,流水线的创建过程包括以下步骤:
S101:根据XPath查询表达式抽取所有查询原语组成原语序列;
S102:对原语序列中的每个原语进行代价估算以获得对应的代价,配置线程数,设定代价累计值为0;
S103:根据每个原语的代价计算XPath查询表达式中所有原语的总代价和流水阶段的平均代价;
S104:判断原语序列中的原语的个数是否多于线程数,如果是,进入S105;否则,进入S109;
S105:判断原语序列中是否还有原语未处理,如果是,进入S106;否则,进入S111;
S106:从原语序列内提取一个原语,并将其代价累加至代价累计值后,将其从原语序列内剪切至临时原语序列内;
S107:判断代价累计值是否超过流水阶段的平均代价,如果是,进入S108;否则,返回S105;
S108:根据临时原语序列创建一个新流水阶段,设定代价累计值为0,同时清空临时原语序列,返回S105;
S109:判断原语序列中是否还有原语未处理,如果是,进入S110;否则,进入S111;
S110:从原语序列内提取一个原语创建一个流水阶段,返回S109;
S111:调整各邻接的流水阶段的连接关系;
S5:分配线程至流水线的各流水阶段后执行流水线查询;
S6:输出查询结果。
2.根据权利要求1所述的XML文档的流水线XPath查询方法,其特征在于:提取的统计变量的类型包括Nτ1,Nτ1*和Nτ1θτ2,其中:Nτ1表示XML文档中,标签名为τ1对应的所有节点的总数;Nτ1*表示XML文档中,所有以标签名为τ1的节点作为根节点的子树内包含的所有节点的总数;Nτ1θτ2表示XML文档中,所有以标签名为τ1的节点作为根节点的子树内包含有θ关系且标签名为τ2的节点的总数,θ表示节点之间关系。
3.根据权利要求1所述的XML文档的流水线XPath查询方法,其特征在于:节点的区间编码信息通过6元组表示,即设定节点u的区间编码εu为εu=id,nodeType,tagName,begin,end,level,其中,u表示节点的序号;id表示节点唯一编码;nodeType表示节点类型;tagName表示节点的标签名;begin表示节点在文档中的开始位置;end表示节点在文档中的结束位置;level表示节点的层次值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于集美大学,未经集美大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011420888.6/1.html,转载请声明来源钻瓜专利网。