论文部分内容阅读
随着计算机网络技术的发展,可扩展标记语言(XML)已经成为互联网上数据表示和传输标准,XML被普遍地用于异构信息和异构平台之间数据交换和数据共享。为了满足查询和处理XML数据的需求,W3C提出了XQuery语言。XQuery和XML数据的关系类似SQL与关系数据库的关系。XQuery很好地结合了XML数据的半结构化特性,能够在XML文档中查询出用户所需的文档片段,或根据XML文档进行科学计算。在对XML文档进行处理时,针对XML数据结构特征进行的XPath查询是实际应用当中最基本和最普通的操作,同时也是最耗时空的操作之一。多数结构查询需求都包含了节点之间的结构约束,若干个相关的祖先后代关系(AD)或双亲子女关系(PC)关系经常表现为一种树型的查询模式。如何高效地查询XML文档已经成为数据库领域的研究热点。采用整体匹配方式的XML树模式查询算法已经得到了深入研究,然而这些算法均未考虑到定义在XPath表达式轴操作上位置谓词的实现需求。由于无法从整体匹配的结果中筛选出符合位置谓词的查询结果,使得这些算法无法用于实现具有位置谓词的XPath查询。本文对XML结构查询中的位置谓词和兄弟轴(following-sibling)的实现方法进行了研究,设计了一种三层结构的嵌套栈,并基于嵌套栈提出了整体模式匹配算法TwigPos。TwigPos处理的查询模式能够同时支持存在谓词、位置谓词和兄弟轴。在不同数据集上的实验说明该算法能够有效地处理此类XPath查询请求,增强了XML树模式查询技术的实用性。