第1章 XML文档 2
1.1 什么是XML 2
1.2 XML技术标准 3
1.2.1 XML相关标准 3
1.2.2 XML的主要技术特点 4
1.2.3 XMLSchema 5
1.3 XMLSchema和DTD 6
1.3.1 XML模式与XML格式 6
1.3.2 数据类型 7
1.3.3 元素顺序的支持 8
1.3.4 命名空间 9
1.3.5 对API的支持 10
1.3.6 对于属性的定义 11
1.3.7 注释 11
1.3.8 对数据库的支持 11
1.4 关于XML的几点说明 12
第2章 XMLSchema 17
2.1 DTD语法 17
2.1.1 工作示例 18
2.1.2 关于DTD的几点说明 20
2.2 内置数据类型 20
2.2.1 数据类型分类 20
2.2.2 数据类型继承图 23
2.2.3 基本数据类型 23
2.2.4 派生数据类型 24
2.2.5 常用数据类型描述 25
2.3 命名空间 29
2.3.1 什么是命名空间 30
2.3.2 XML中的命名空间 31
2.3.3 对命名空间进行命名 31
2.3.4 定义命名空间 33
2.3.5 使用命名空间 34
2.3.6 schemaLocation属性 37
2.3.7 XMLSchema和XMLSchemaInstance命名空间 38
2.3.8 elementFomDefault和attributeFonnDefault属性 39
2.4 元素定义 40
2.4.1 元素定义 40
2.4.2 元素命名规则 41
2.4.3 使用子元素还是使用属性 41
2.5 自定义数据类型 42
2.5.1 简单数据类型 42
2.5.2 简单数据类型 48
2.6 结论 61
第3章 XML编辑器 62
3.1 XML编辑器综述 62
3.1.1 Morphon 63
3.1.2 <oXygen/> 65
3.1.3 XMLEditor 66
3.1.4 XMLwriter 67
3.1.5 EditMLPro 68
3.1.6 XMLSpy 70
3.1.7 XMetal3. 71
3.1.8 EclipseXML编辑器 73
3.1.9 其他产品 74
3.2 XMLSpy功能介绍 75
3.2.1 XMLSpy用户界面 75
3.2.2 创建一个XMLSchema文件 76
3.2.3 高级的XMLSchema定义 86
3.3 创建一个XML文档 94
3.4 验证文档 101
3.5 工程管理 105
第4章 构造XML开发环境 108
4.1 XMLParser综述 108
4.1.1 XMLParser概述 108
4.1.2 DOM 109
4.1.3 SAX 111
4.1.4 总结 112
4.2 XMLParser的比较 113
4.2.1 ApacheXerces 114
4.2.2 JAXP 115
4.2.3 Microsoft MSXML 116
4.2.4 OracleXMLParserforJava 118
4.2.5 JamesClarkXP 119
4.3 构造ApacheXerces开发环境 120
4.4 XercesAPI文档 122
4.4.1 文档规范 122
4.4.2 常见问题 123
4.4.3 编程指导 127
第5章 Xerces-C++功能分析 129
5.1 Xerces-C++解析器 129
5.2 建立Xerces-C++示例程序 130
5.3 Xerces-C++功能分析 132
5.3.1 SAXCount 132
5.3.2 SAXPrint 133
5.3.3 DOMCount 135
5.3.4 DOMPrint 135
5.3.5 MemParse 137
5.3.6 Redirect 139
5.3.7 PParse 139
5.3.8 StdInParse 140
5.3.9 EnumVal 141
5.3.10 CreateDOMDocument 142
5.3.11 Sax2Count 142
5.3.12 SAX2Print 143
5.3.13 SEnumVal 145
5.3.14 PSVIWriter 147
5.3.15 SCMPrint 148
第6章 Xerces-C++编程指导 150
6.1 Xerces-C++解析器 150
6.2 SAX编程指导 151
6.2.1 使用SAXAPI 151
6.2.2 SAXParser 152
6.3 SAX2编程指导 158
6.3.1 使用SAX2API 158
6.3.2 SAX2XMLReader 159
6.4 DOM编程指导 167
6.4.1 使用DOMAPI 167
6.4.2 XercesDOMParser 171
6.4.3 DOMBuilder 178
6.4.4 DOMWriter 189
6.5 DOMLevel3支持 194
第7章 Xerces-C++开发实例 196
7.1 应用例子描述 196
7.1.1 需求描述 196
7.1.2 需求分析 201
7.2 应用例子设计 206
7.2.1 Xm1MsgRouter类 206
7.2.2 XmlMain类 208
7.3 XML文档查询操作 214
7.4 XML文档增加节点操作 215
7.4.1 doSetActionToMainTree()方法 215
7.4.2 getSetOption()方法 216
7.4.3 doCreateAction()方法 217
7.4.4 Xm1SetResponse()方法 222
7.5 XML文档修改节点操作 224
7.6 XML文档删除节点操作 225
7.7 路径打印和清除操作 226
7.7.1 printPathList()方法 226
7.7.2 clearPathList()方法 226
第8章 BerkeleyDBXML基础 228
8.1 BDBXML概述 228
8.1.1 功能描述 228
8.1.2 主要特性 229
8.2 XPath路径语言 231
8.2.1 XPath中的节点类型 232
8.2.2 文档顺序 233
8.2.3 XPath表达式介绍 234
8.2.4 XPath中的定位路径 235
8.2.5 定位路径实例讲解(1) 238
8.2.6 定位路径实例讲解(2) 240
8.2.7 XPath核心函数 242
8.3 XQuery数据查询语言 243
8.3.1 XQuery概述 243
8.3.2 XQuery查询应用 244
8.3.3 XQuery转换应用 245
8.3.4 XQuery更新应用 247
8.3.5 XQuery与其他语言的比较 247
8.4 更多DBDXML资源 248
第9章 XML管理器和容器 250
9.1 XmlManager 250
9.1.1 BerkeleyDB环境 250
9.1.2 XmIManager实例和释放 253
9.2 管理容器 255
9.2.1 容器标记 255
9.2.2 容器类型 256
9.2.3 删除和重命名容器 257
9.3 容器中装载XML文档 258
9.3.1 输入流和字符串 258
9.3.2 添加文档 259
9.3.3 设置元数据 261
9.4 管理容器中的文档 263
9.4.1 删除文档 263
9.4.2 替换文档 264
9.4.3 修改文档 265
第10章 在BDBXML中使用XQuery 274
10.1 XQuery简单介绍 274
10.1.1 使用XQuery提取部分文档 275
10.1.2 判断语 275
10.1.3 上下文 276
10.1.4 通配符 278
10.1.5 操作函数 279
10.1.6 在BDBXML中使用FLWOR 280
10.2 使用XQuery回取BDBXML文档 281
10.2.1 Query上下文 281
10.2.2 执行查询 284
10.3 检查XQuery结果 286
10.3.1 检查文档值 287
10.3.2 检查元数据 289
10.3.3 使用事件读入器 290
第11章 使用BDBXML索引 293
11.1 索引及其类型 293
11.1.1 唯一性 294
11.1.2 路径类型 294
11.1.3 节点类型 295
11.1.4 键类型 295
11.2 语法类型 296
11.3 指定索引策略 296
11.3.1 使用字符串指定索引 296
11.3.2 使用枚举类型指定索引 298
11.4 指定索引节点 300
11.5 索引处理注解 301
11.6 管理BDBXML索引 302
11.6.1 增加索引 302
11.6.2 删除索引 303
11.6.3 替换索引 304
11.6.4 检查容器索引 305
11.6.5 使用默认索引 305
11.6.6 查寻索引文档 306
11.7 使用Query计划验证索引 308
11.7.1 查询计划 308
11.7.2 使用dbxmlShell检查查询计划 310
第12章 使用事务 313
12.1 BDBXML事务 313
12.2 初始化事务子系统 314
12.3 事务保护容器操作 316
12.4 事务考虑 318
第13章 BDBXML应用实例 320
13.1 应用描述 320
13.1.1 需求描述 320
13.1.2 需求分析 327
13.2 应用设计 337
13.2.1 exampleLoadContainer()方法 337
13.2.2 loadMyExamplesData…sh命令 341
13.3 应用实现 343
13.3.1 XML装入容器的实现 343
13.3.2 doQueryIEO方法 344
13.3.3 getEvtNameAttrValueO方法 348
13.3.4 doQueryResults()方法 349
13.3.5 其他方法和源代码 350