The invention discloses a method for quickly querying XML stream data, integrated query in XML data stream in the tag path by a number of complex hierarchical structure composed of the construction level, understand the rapid query - fast XML model to solve the problem of multi label path query (QXMTQ). QXMTQ model based on simple query interface (QI), PAT navigation query tree data structure model (QGPATT) and fast query processing engine (QQE), which provides a label path to query in QI, a complex hierarchical relationship between the model of adaptive label path, support predicate expression parameter interface (optional); QGPATT share the label aided navigation structure and fast searching structure of PAT can make the QQE more quickly and more accurately match the target label, filter irrelevant branches, query and obtain the relevant tag value. Tests show that the QXMTQ model has a very prominent query space time efficiency for querying multiple hierarchical and complex tag paths for large-scale XML streaming data.
【技术实现步骤摘要】
一种XML流数据的快速查询方法
本专利技术属于信息交换和查询领域,尤其涉及一种XML流数据的快速查询方法,具体为在XML流数据中进行由多个具有复杂结构关系的标签路径组成的快速层次融合式查询,并返回二维结果值集合。
技术介绍
XML(extensiblemarkuplanguage),即可扩展的标记语言,是一套定义语义标记的规范。XML提供统一的方法来描述和交换独立于应用程序的结构化数据。随着网络应用的快速发展,使得XML类型的数据成为基于互联网数据交换的主流数据形式。XML流数据是以流的形式在线传输、实时到达,需要即时解析和处理,因此针对大规模XML流数据的快速查询处理是流查询模型的研究热点。XML格式数据具有天然的层次结构关系即树形结构关系,因此在很多应用场合下针对XML数据的查询也具有层次关系特性。在传统关系数据库中一种常见的层次数据查询应用:有条件地从不同层级的数据表中检索多个字段的数据。假定以下关系:部门(部门编号,部门名称);员工(员工编号,部门编号,员工姓名,职位,性别,年龄),部门和员工之间是一对多的关系(树状结构),对应的简写:Dept(dep_id,dep_name)和Emp(emp_id,dep_id,name,title,gender,age)。显然部门表和员工表是不同层次关系的表,后者是前者的子表,现在要检索出“年龄大于40岁的所有的员工姓名、职位和所属部门名称”,那么对应的SQL脚本语句如下:总结这种层次表联接(融合性)查询具有以下特点:1)数据的循环层次,结果集是以员工层次为中心的循环数据集而不是部门,在SQL中缺省以最低层次为 ...
【技术保护点】
一种XML流数据的快速查询方法,其特征在于,包括以下步骤:步骤1、XML Schema定义预处理:构建查询导航PAT树步骤101、搜索根元素并根据其元素信息创建查询树的根节点;步骤102、判断是否为Schema定义文档中的最末元素,如果是结束此预处理,否则跳转到步骤103;步骤103、通过当前元素寻找所有子元素,构建相对应的子标签节点并放入查询树中,在该子标签节点中放入此子元素标签特定的详细信息,同时在父‑子标签节点中放入导航信息;步骤104、根据节点及其所有直属孩子节点构建Patricia tries辅助快速搜索结构,中间PAT节点记录“共同”部分的长度,叶子PAT节点指向对应的直属孩子标签节点;步骤2、查询参数预处理:构建谓词表达式语法计算树、查询导航PAT树步骤201、如果谓词表达式不存在的话,跳转到步骤204,如果存在,顺序执行下一步骤202;步骤202、按照表达式EBNF范式,语法分析谓词条件表达式,并把操作数作为叶子节点,相关的操作符作为其父节点,依次类推构造谓词语法计算树;步骤203、把每个条件表达式子项中的标签路径追加到查询标签路径表中;步骤204、判断是否查询标签路径 ...
【技术特征摘要】
1.一种XML流数据的快速查询方法,其特征在于,包括以下步骤:步骤1、XMLSchema定义预处理:构建查询导航PAT树步骤101、搜索根元素并根据其元素信息创建查询树的根节点;步骤102、判断是否为Schema定义文档中的最末元素,如果是结束此预处理,否则跳转到步骤103;步骤103、通过当前元素寻找所有子元素,构建相对应的子标签节点并放入查询树中,在该子标签节点中放入此子元素标签特定的详细信息,同时在父-子标签节点中放入导航信息;步骤104、根据节点及其所有直属孩子节点构建Patriciatries辅助快速搜索结构,中间PAT节点记录“共同”部分的长度,叶子PAT节点指向对应的直属孩子标签节点;步骤2、查询参数预处理:构建谓词表达式语法计算树、查询导航PAT树步骤201、如果谓词表达式不存在的话,跳转到步骤204,如果存在,顺序执行下一步骤202;步骤202、按照表达式EBNF范式,语法分析谓词条件表达式,并把操作数作为叶子节点,相关的操作符作为其父节点,依次类推构造谓词语法计算树;步骤203、把每个条件表达式子项中的标签路径追加到查询标签路径表中;步骤204、判断是否查询标签路径列表末尾,如果不是执行步骤205,否则结束查询参数预处理;步骤205、针对每一查询标签路径,首先分拆成一个标签序列,按照顺序处理每一个标签,在查询导航PAT树结构中的对应标签节点标注为需要查询聚焦:此标签节点状态为“通过”,同时把父标签节点通向该标签节点的每一个PAT节点标注状态为“通过”,其它的PAT节点的状态为“拒绝”;然后顺序检查下一个标签,直到此标签序列结束,跳转执行步骤204;步骤3、查询处理并提供二维结果集步骤301、解析目标XML流数据文档,解析过程中根据产生的事件回调不同方法,其中事件“StartElement”执行步骤302、事件“Characters”执行步骤303、事件“EndElement”执行步骤304;步骤302、输入标签匹配搜索查询导航PAT树中从当前标签节点也就是父标签节点开始通过PAT辅助结构和其对应的快速...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。