论文部分内容阅读
由于XML数据具有表示灵活和互操作性强等诸多关系数据所不可比拟的优点,因而在企业数据集成和互联网在线服务等领域得到广泛的应用。XML模式是对XML文档结构的描述,它在XML的数据集成、文档验证、查询优化和数据转换等方面都起着至关重要的作用,因此如何设计和规范化XML模式成为XML研究的热点问题之一。 在XML文档中对于不同的元素,既使其标记相同,但是其数据的类型即组织结构也可能是不同的。本文发现,这种具有多种类型的XML数据片段与其它元素的值和类型之间可能存在着某种依赖关系,而这种与类型相关的依赖关系可以为XML数据的进一步规范化和XML流数据模式语言的设计提供支持。 本文围绕着建立基于纯XML类型依赖的模式语言、基于混合XML类型依赖的规范化方法,以及作为模式语言研究技术支撑的类型相交判定问题等三个方面展开了研究工作。对于这些问题的探讨和研究,将会对XML模式语言和规范化技术的应用发展起到积极的推动作用。 本文的主要研究工作和创新点如下: (1)针对基于正则树文法的XML模式语言在XML流数据处理上面临表达能力不足、定义复杂、难于使用等诸多问题,本文发现,这些文法的类型定义机制同时负责定义类型和传递上下文信息这两项任务是造成上述的问题的主要原因。为了解决该问题,本文提出了基于前缀路径模式和最近节点概念的纯XML类型依赖及其约束实例的定义,使用纯XML类型依赖可以方便地描述XML文档中普遍存在元素类型之间的约束关系。进一步地,本文提出了完全竞争的概念,并在此基础上定义了扩展完全竞争文法,该文法中不存在类型之间的依赖关系。基于上述概念,本文提出了面向XML流数据的模式语言SPXTD Schema,它由一个带约束实例的纯XML类型依赖集合和一个扩展完全竞争文法构成,其中纯XML类型依赖集合负责传递上下文信息,扩展完全竞争文法负责定义类型。本文还给出了SPXTD Schema的验证算法,并证明了SPXTD Schema在满足XML流数据验证的前提下比现有的模式语言有更强的表达能力。这种混合了文法和依赖关系的模式语言在具有更强的表达能力的同时实现了定义类型和传递上下文信息这两项任务的分离,避免了人工类型的出现,从而降低了XML模式的设计难度。 (2)为解决与XML数据中与类型相关的依赖关系可能导致的数据冗余进而产生更新异常和数据不一致的问题,本文提出了混合XML类型依赖的概念用以描述XML文档中某些节点的类型与其它节点的值之间的约束关系,并采用基于路径的表示方法,给出了四类混合XML类型依赖的形式化定义,进而将这些XML类型依赖和XML函数依赖汇总为一种通用的混合XML类型依赖,用以支持不同XML元素之间类型和值之间相互交叉的XML依赖关系的描述。本文针对具有相同上下文路径的混合XML类型依赖,提出了一组有效且完备的推理规则,并且定义了具有不同上下文路径的依赖之间的等价关系和重写规则,从而实现了混合XML类型依赖的逻辑蕴涵关系的判定。进一步地,本文提出了类型/数值式的混合XML内部类型依赖的XML范式,即XML类型范式,并给出了相关的规范化算法。 (3)为解决XML模式验证中类型相交判定问题,本文提出了一种基于规则推导的正则表达式相交判定算法,并且证明了算法中推导规则的正确性和完备性。该算法根据输入的正则表达式通过一组规则进行推导计算,对于一般的正则表达式,该算法节省了构造自动机的时间,并且算法可以自动跳过正则表达式中不影响判定结果的子式,从而提高了判定的效率。并且对于在XML模式语言中广泛使用的One-Unambiguous正则表达式,该算法的时间复杂度降为多项式级。实验表明,该方法可以在实际应用中有效加快XML类型相交判定的速度。