论文部分内容阅读
随着互联网技术的高速发展,XML已成为互联网中数据交换和表示的事实标准,XML相关技术也在各种XML信息平台上扮演着重要的角色。国际互联网组织W3C提出的XQuery语言是当今最主流的XML数据查询语言。XQuery查询引擎广泛应用于XML数据处理的各种场景。其中Twig查询(小枝模式查询)是XML数据查询的核心操作,利用先进的模式匹配算法完成高效的处理。另一方面,以XMLSchema和DTD为代表的XML类型系统也广泛应用于XML类型检查,查询优化,视图更新等众多领域。在复杂的XML数据处理中,Twig查询的结果往往需要进一步处理。例如,在XQuery程序的FLWOR表达式中,Twig查询的结果可以从for/let子句获得,这些结果又都会参与到由return子句描述的后续计算中。Twig查询结果的类型信息有助于对后续基于Twig查询结果的XML处理进行深入的静态类型分析,也会带来更多的类型相关的查询优化的机会。这些类型信息要同时满足Twig模式的结构约束条件和类型系统的定义。本文分析了Twig查询的类型推导问题,提出一种精确的XML类型推导方法,能够根据Twig查询输入数据的数据类型和Twig模式的结构约束,推导出查询结果的精确类型,从而为作用于Twig查询结果的XML数据处理提供更加精确的XML类型信息。这种方法包括了XML模式图到XML类型树的转换、XML类型树上的Twig模式匹配、可共存类型节点判断和匹配结果的子类型化。该方法以不同的子类型化的XML类型树的形式为不同种类的Twig查询结果提供了精确的类型信息。实验证明了该方法的有效性。