第1章 绪论 1
1.1引言 1
1.2 XQuery语言的基础知识 2
1.2.1 XML 2
1.2.2 XPath语言 4
1.2.3 XQuery 1.0语言 6
1.3 XQuery语言相关的功能扩展 8
1.3.1 XML数据更新功能 9
1.3.2 XQuery脚本语言 9
1.3.3面向分布式计算的XQuery语言扩展 10
1.3.4面向Web应用的XQuery语言扩展 11
1.4 XQuery语言的实现技术 11
1.4.1 XML.查询代数 11
1.4.2 XML树模式查询 12
1.4.3 XQuery程序优化 14
1.4.4 XQuery语言的编译实现 15
1.4.5 XQuery语言的自动并行化 16
参考文献 18
第2章XQuery语言的语法和语义 22
2.1数据模型和上下文 22
2.2处理模型 23
2.3语言结构 24
2.3.1整体结构与声明部分 24
2.3.2 XQuery表达式 25
2.3.3 XPath路径表达式 27
2.3.4 FLWOR和量化表达式 28
2.3.5 XML节点构造表达式 29
2.3.6类型相关的语言结构 29
2.4形式语义 31
2.4.1抽象语法 31
2.4.2语义的形式化描述 33
2.5 XQuery数据更新规范 42
2.6 XQuery脚本语言扩展 43
2.7总结 45
参考文献 46
第3章 中间语言与查询代数 47
3.1 FXQL语言 47
3.1.1 FXQL程序的案例 47
3.1.2 FXQL/1语言的数据模型 49
3.1.3 FXQL/1语言的语法 50
3.1.4 FXQL/1语言的语义 50
3.2 XML查询代数 53
3.2.1 XML查询代数的发展 53
3.2.2 XQA查询代数 55
3.3查询计划的生成 58
3.3.1 FLWOR表达式的翻译 59
3.3.2具有Orderby子句的FLWOR表达式的翻译 63
3.3.3 XPath表达式的翻译 63
3.3.4其他XQuery表达式的翻译 64
3.3.5 XQuery程序的翻译案例 65
3.4总结 67
参考文献 67
第4章XQuery程序优化技术 69
4.1 FXQL表达式的图形化表示 70
4.2 FXQL代码优化 71
4.2.1自动内联 71
4.2.2复制传播 73
4.2.3循环不变量外提 74
4.2.4消除公共子表达式 75
4.3 XML数据查询的逻辑优化 77
4.3.1选择移动 77
4.3.2排序上浮 80
4.3.3消除相关性 82
4.3.4消除flat 85
4.4各种程序优化的执行顺序 86
4.5总结 87
参考文献 87
第5章XML查询模式及其语言支持 89
5.1 XML树模式查询 89
5.1.1 XML树模式查询的概念 89
5.1.2 XML查询模式的发展 91
5.2 GTP+++树模式查询 92
5.3 FXQL/2语言 94
5.3.1 FXQL/2语言的语法 94
5.3.2 GTP+++模式的语言表示案例 96
5.3.3 FXQL/2语言的数据模型 97
5.3.4 FXQL/2语言的形式语义 99
5.4树模式提取算法 103
5.4.1标准树模式的提取 104
5.4.2 GTP+++模式的生成 112
5.5总结 114
参考文献 115
第6章XML树模式查询的实现方法 116
6.1 XML树模式查询算法的发展 116
6.2 GTP+++查询算法 118
6.2.1树模式查询结果的表示 118
6.2.2 GTP+++树模式查询算法 120
6.3多级树模式查询 126
6.4 FXQL/3语言 128
6.4.1多级树模式的语言表示 129
6.4.2多级树模式的生成 131
6.4.3 FXQL/3语言的形式语义 132
6.5多级树模式的查询算法 133
6.6基于多级树模式的查询优化 138
6.6.1内部树模式的提升 138
6.6.2树模式提升算法 139
6.7总结 142
参考文献 143
第7章XQuery语言编译技术 144
7.1 XQuery编译技术的发展 144
7.2基于SECD抽象机的XQuery编译方案 145
7.2.1 SECD抽象机模型 145
7.2.2 XQuery编译系统结构 146
7.2.3扩展的SECD抽象机 148
7.2.4抽象机指令系统 148
7.2.5作为目标代码的Java字节码 151
7.2.6 XQuery程序的编译案例 152
7.3从FXQL语言到SECD指令的翻译 154
7.3.1 FXQL表达式的翻译 154
7.3.2树模式查询请求的翻译 156
7.3.3 XML查询原语的翻译 158
7.4 SECD抽象机的字节码实现 164
7.4.1 Java虚拟机的体系结构 164
7.4.2 Java栈帧和数组表示 165
7.4.3 Java类文件结构 167
7.4.4 SECD机的实现方法 168
7.4.5从SECD指令到Java字节码的翻译 169
7.4.6树模式查询的Java字节码实现 171
7.5 XQuery语言的动态编译 174
7.5.1 XQuery语言的Hotspot编译 175
7.5.2 XQuery程序模块的编译实现 176
7.5.3动态编译策略 177
7.6总结 177
参考文献 178
第8章XQuery程序的自动并行化 179
8.1 XQuery程序的并行化处理 180
8.1.1 XQuery程序的三种并行处理方式 180
8.1.2 XQuery并行执行引擎的结构 182
8.2 XQuery语言的并行查询计划 183
8.2.1可并行任务的任务图 183
8.2.2针对XQuery语言的任务分解方法 184
8.3 XQuery程序并行执行的任务调度 187
8.3.1 XQuery程序的执行代价模型 187
8.3.2 XQuery程序执行的任务调度 189
8.3.3 XQuery并行执行引擎的实现算法 191
8.4总结 193
参考文献 194
第9章 基于XQuery的网页开发语言 195
9.1 Web客户端网页开发语言 195
9.2 XQScript语言 197
9.2.1浏览器对象及其文档对象的引用 197
9.2.2浏览器对象及其文档对象的更新 199
9.2.3 JavaScript内置对象的方法激活 200
9.2.4事件响应机制的支持 201
9.2.5 XQScript网页开发案例 202
9.3 XQScript语言的实现原理 204
9.3.1从XQScript程序到XHTML网页的生成 204
9.3.2 XQScript软件开发系统 205
9.4 XQScript语言的执行引擎 206
9.4.1快照语义的实现方法 206
9.4.2 HTML DOM对象操作的转换 209
9.4.3事件响应函数的实现方法 211
9.5 XHTML网页的生成 211
9.5.1 XQScript程序的预处理 212
9.5.2 XHTML网页的生成过程 213
9.5.3动态生成的XHTML文档案例 213
9.6 XQuery语言的扩展研究 215
9.7总结 216
参考文献 217