流式 XML 模式的演变
1. 相关工作概述
在流式 XML 验证领域,前人已经开展了诸多有价值的研究。Segoufin 和 Vianu 率先提出使用下推自动机(Pushdown Automata)来验证流式 XML,并定义了验证所需的辅助空间,该空间与 XML 文档的深度成正比。
VPL(Visibly Pushdown Languages)及其识别设备 VPA(Visibly Pushdown Automata)也被引入。逻辑层面的特征刻画工作也有所展开。有研究表明,VPA 是验证流式 XML 的合适工具,并给出了从 EDTDs 到等效 VPA 的直接构造方法。
在容错验证问题上,一些研究采用编辑操作来修改 XML 以使其符合模式。但与之不同的是,这里考虑的是语言操作而非 XML 树的编辑操作。因为编辑操作可能无法自然地对应用户更改 XML 文档或模式的意图,而语言操作能更好地满足用户一次性删除或插入复杂元素的需求,还允许用户指定要删除或插入元素的结构。
此外,对正则语言的编辑操作研究主要围绕在图数据库中寻找近似拼写给定正则语言单词的路径问题。而对于语言的删除和插入操作,正则语言在这两种操作下是封闭的,上下文无关语言在插入操作下封闭,但在删除操作下不封闭。Visibly Pushdown Transducers(VPTs)也被引入,且研究表明 VPL 在非擦除同步 VPT 的转换下是封闭的。
2. 可见下推自动机和转换器
2.1 可见下推自动机(VPA)
VPA 是下推自动机的一种特殊情况,其字母表被划分为调用、返回和局部符号三个不相交的集合,栈的压入或弹出行为由读取的符号决定。具体来说: