用于导航数据结构的方法和系统技术方案

技术编号:4892411 阅读:297 留言:0更新日期:2012-04-11 18:40
提供了一种用于导航数据结构的方法和系统。所述方法包括接收用于查询数据结构(101)的输入路径表达式(104)以便在运行时定位所述数据结构(101)中的一个或多个元素(110)。所述输入路径表达式(104)包括一个或多个路径步骤。所述方法包括访问所述数据结构(101)的模式(103)并获得与所述一个或多个元素(110)相关的信息。修改所述路径表达式(104)以便在一个或多个所述路径步骤中指定索引以限制位于路径步骤中的元素的出现次数。在一个实施例中,修改所述路径表达式(104)还扩展任何通配符并指定所述元素(110)的一个或多个完整路径,其中如果存在两个或更多个完整路径,则通过合并运算符组合所述路径,并且修改后的路径表达式用于在运行时查询(111)所述数据结构(101)。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及数据结构导航领域。具体地说,本专利技术涉及使用路径表达式进行导航 以查询数据结构。
技术介绍
可以通过使用路径表达式查询数据结构。存在多种允许使用路径语言(例如, XPath (XML路径语言)的某种变型)来存储和查询XML (可扩展标记语言)数据的数据库系 统。XPath是查询树数据结构的W3C标准方法。XPath允许根据路径表达式查询XML数据。 本文档涉及XPath表达式和查询,但应被解释为包括其他路径语言中的其他形式的路径表 达式。路径表达式是指定通过XML文档分层结构的路径的任何表达式。XML文档的由路径 表达式标识的部分是在XML文档结构内位于匹配该路径表达式的任何路径的结尾处的部 分。XML文档通常表示为文档对象模型(DOM)结构或树。由于路径查询通过遍历这些 结构进行求值,因此查询优化的要求是有效减少所遍历节点的数量。XML模式(schema)定义精确的XML文档结构格式。此模式可能无法在运行时使用。考虑无权访问所查询的文档模式(仅可访问已分析的DOM树)的路径运行时引 擎。用户可在其中输入自由格式路径表达式的创作工具(即,不通过路径构建器)无权访 问此模式。使用后代(//)路径轴以允许用户在XML文档内按名称查找任何元素而不必指定 元素的完整路径将是有利的。但是,对于运行时引擎,后代轴效率非常低,因为它需要遍历 整个DOM树以查找此元素的所有出现。位于戴维斯的加利福尼亚大学分校的计算机科学系的April Kwong和Michael Gertz 的Schema-based Optimization of XPath Expression (基于模式的XPath表达式优 化)”披露了使用从模式生成的路径等价类优化XPath表达式。所述优化方法包括在XPath 表达式中扩展通配符。
技术实现思路
根据本专利技术的第一方面,提供了一种用于导航数据结构的方法,包括接收用于查 询数据结构的输入路径表达式以便在运行时定位所述数据结构中的一个或多个元素,所述 输入路径表达式包括一个或多个路径步骤;访问所述数据结构的模式并获得与所述一个或 多个元素相关的信息;修改所述输入路径表达式以便在一个或多个所述路径步骤中指定索 引以限制位于路径步骤中的元素的出现次数;以及使用修改后的路径表达式在运行时查询 所述数据结构。根据本专利技术的第二方面,提供了一种用于导航数据结构的系统,包括用于接收查 询数据结构的输入路径表达式以便在运行时定位所述数据结构中的一个或多个元素的装置,所述输入路径表达式包括一个或多个路径步骤;用于访问所述数据结构的模式并获得 与所述一个或多个元素相关的信息的装置;用于修改所述输入路径表达式以便在一个或多 个所述路径步骤中指定索引以限制位于路径步骤中的元素的出现次数的装置;以及用于输 出修改后的路径表达式以用于在运行时查询所述数据结构的装置。 根据本专利技术的第三方面,提供了一种存储在计算机可读存储介质上的计算机程序 产品,所述计算机程序产品包括用于执行以下步骤的计算机可读程序代码装置接收用于 查询数据结构的输入路径表达式以便在运行时定位所述数据结构中的一个或多个元素,所 述输入路径表达式包括一个或多个路径步骤;访问所述数据结构的模式并获得与所述一个 或多个元素相关的信息;修改所述输入路径表达式以便在一个或多个所述路径步骤中指定 索引以限制位于路径步骤中的元素的出现次数;以及使用修改后的路径表达式在运行时查 询所述数据结构。优选地提供了一种解决方案,该解决方案通过提供一种基于路径的查询方法以从 XML文档检索数据而无需对基表进行完整扫描和构造昂贵的存储器数据结构,改进了基于 路径的查询的处理时间。优选地提供了一种解决方案,该解决方案获得并使用与查询中的 元素的重复相关的信息。所述方法和系统使能查询具有基础模型的数据结构,其中所述数据结构内的元素 可以重复,并且其中可以通过了解是否存在重复以及重复程度来优化数据结构的导航。本专利技术优选地采用原始路径表达式,并使用模式将此表达式转换为可由运行时引 擎更有效地处理的格式。模式包含跟踪任何元素直到返回文档根所需的信息,并且因此可 以生成到此元素的完整路径。这优选地允许所述运行时引擎直接导航到此元素而不是“搜 索”此元素。附图说明现在将仅通过实例的方式参考附图描述本专利技术的实施例,这些附图是图IA和IB是根据本专利技术的一个实施例的系统的示意图;图2是其中可以实现本专利技术的一个实施例的计算机系统的方块图;图3是根据本专利技术的一个实施例的文档结构的示意图;图4是根据本专利技术的一个实施例的总体过程的流程图;以及图5是根据本专利技术的一个实施例的实例过程的流程图。具体实施例方式参考图1A,示意图示出了系统100,其中运行时引擎102查询数据结构101以定位 数据结构101中的一个或多个元素110。数据结构101可以是例如表示为文档对象模型(DOM)树的XML文档。在另一个实 例中,数据结构101是被分析为类似树数据结构的非XML数据。在一个实施例中,数据结构 101是由消息代理查询的消息。数据结构101具有关联的模式103。路径表达式104作为查询111被输入到运行时引擎102,运行时引擎102在数据结 构101中搜索路径表达式104的出现以定位一个或多个元素110。使用工具包(toolkit) 105构建查询111,然后将查询111部署到运行时引擎102。在所述系统100中,工具包105访问模式103以修改路径表达式104。使用来自所查询的数据结构101的模式103的信息,修改路径表达式104以包括 所查询的元素110的完整路径和其他信息。这有助于跟踪元素110而不是搜索元素110,并 且因此提高了运行时引擎102的效率。此外,如果模式103指示所查询的元素110的出现 次数,则运行时引擎102可以在发现此特定元素110的特定出现次数之后停止。参考图1B,示出了在其中输入路径表达式104的工具包105的详细图。参考所述 模式以获得模 式信息120。修改器121使用模式信息120修改路径表达式104以提供查询 输出122。运行时引擎使用查询输出122查询数据结构。例如,可以使用所述模式确定所查 询的元素的出现,然后修改器121使用此信息向查询输出122添加谓词(predieate)。参考图2,用于实现工具包105的示例性系统包括适于存储和/或执行程序代码的 数据处理系统200,数据处理系统200包括至少一个直接或通过系统总线203间接连接到存 储器元件的处理器201。所述存储器元件可以包括在程序代码的实际执行期间采用的本地 存储器、大容量存储装置以及提供至少某些程序代码的临时存储以减少必须在执行期间从 大容量存储装置检索代码的次数的高速缓冲存储器。所述存储器元件可以包括只读存储器(ROM) 204和随机存取存储器(RAM) 205形式 的系统存储器202。基本输入/输出系统(BIOS) 206可以存储在ROM 204中。包括操作系 统软件208在内的系统软件207可以存储在RAM 205中。软件应用210也可以存储在RAM 205 中。系统200还可以包括诸如硬磁盘驱动器之类的主存储装置211以及诸如磁盘驱动 器和光盘驱动器之类的辅助存储装置212。所述驱动器及其关联的本文档来自技高网
...

【技术保护点】
一种用于导航数据结构(101)的方法,包括:接收用于查询数据结构(101)的输入路径表达式(104)以便在运行时定位所述数据结构(101)中的一个或多个元素(110),所述输入路径表达式(104)包括一个或多个路径步骤;访问所述数据结构(101)的模式(103)并获得与所述一个或多个元素(110)相关的信息;修改所述输入路径表达式(104)以便在一个或多个所述路径步骤中指定索引以限制位于路径步骤中的元素的出现次数;以及使用修改后的路径表达式在运行时查询(111)所述数据结构(101)。

【技术特征摘要】
【国外来华专利技术】EP 2008-1-15 08150284.1一种用于导航数据结构(101)的方法,包括接收用于查询数据结构(101)的输入路径表达式(104)以便在运行时定位所述数据结构(101)中的一个或多个元素(110),所述输入路径表达式(104)包括一个或多个路径步骤;访问所述数据结构(101)的模式(103)并获得与所述一个或多个元素(110)相关的信息;修改所述输入路径表达式(104)以便在一个或多个所述路径步骤中指定索引以限制位于路径步骤中的元素的出现次数;以及使用修改后的路径表达式在运行时查询(111)所述数据结构(101)。2.如权利要求1中所述的方法,其中所述输入路径表达式(104)包括通配符或后代轴 中的一个或多个。3.如权利要求1或2中所述的方法,其中修改所述输入路径表达式(104)的步骤指 定所述元素(110)的一个或多个完整路径,其中通过合并运算符组合两个或更多个完整路径。4.如权利要求1至3中的任一权利要求中所述的方法,其中在一个或多个所述路径步 骤中指定索引的步骤将所述索引的谓词附加到路径元素名称。5.如上述权利要求中的任一权利要求中所述的方法,其中获得信息的步骤包括查找 属性在所述模式(103)中的最大出现次数,并且如果所述属性不存在或所述最大出现次数 为1,则将谓词“1”附加到路径元素名称。6.如上述权利要求中的任一权利要求中所述的方法,其中所述模式(103)包含用于跟 踪所述数据结构(101)的元素(110)直到到达其根的信息。7.如上述权利要求中的任一权利要求中所述的方法,其中所述输入路径表达式(104) 是XPath表达式,并且所述数据结构(101)是具有关联模式(103)的文档对象模型结构。8.一种用于导航数据结构(101)的系统,包括用于接收查询数据结构(101)的输入路径表达式(104)以便在运行时定位所述数据结 构(101)中的一个或多个元素(110)的装置,其中所述输入路径表达式(104)包括一个或 多个路径步骤;用于访问所述数据结构(101)的模式(103)并获得与所述一个或多个元素(110)相关 的信息的装置;用于修改所述输入路径表达式(104)以便在一个或多个所述路径步骤中指定索引以 限制位于路径步骤中的元素的出现次数的装置;以及用于输出修改后的路径表达式以用于在运行时查询(111)所述数据结构(101)的装置。9.如权利要求8中...

【专利技术属性】
技术研发人员:AJ科尔曼
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1