第一部分 XML基础 1
第1章 XML综述 1
1.1 早期岁月 1
1.1.1 SGML基础 1
1.1.2 XML的要求 2
1.2 当前的标准 5
1.2.1 XML 1.0 6
1.2.2 XML名字空间 6
1.2.3 文档类型定义 6
1.2.4 层叠样式表 6
1.2.5 可扩展样式表语言 7
1.2.6 XML大纲 7
1.2.7 XML查询语言 8
1.2.8 XLink 8
1.2.9 XPointer 8
1.2.10 XPath 9
1.2.11 XML数字签名 9
1.2.12 资源描述框架大纲 9
1.2.13 正规XML 9
1.2.14 XHTML 10
1.3 XML软件 10
1.3.1 非校验解析器 10
1.3.2 校验解析器 11
1.4 DOM 12
1.5 小结 12
第2章 XML校验和非校验解析器 13
2.1 开始编写XML文档 13
2.2 XML非校验解析器 16
2.2.1 从一个基本的解析器开始 16
2.2.2 在线解析器 17
2.3 XML校验解析器 18
2.3.1 校验的需求 19
2.3.2 在线校验器 19
2.3.3 大纲检查器 20
2.4 小结 20
第3章 XML初步 21
3.1 XML结构 21
3.2 XML元素 23
3.3 开始写第一个文档 24
3.4 解析文档 24
3.5 使用元素层 25
3.6 给XML代码加上注释 26
3.7 数据结构和组织 27
3.8 小结 28
第4章 XML数据组织 29
4.1 根据数据创建信息层 29
4.1.1 标识信息的重要性 29
4.1.2 为列表添加细节 30
4.2 对数据进行结构化 31
4.2.1 标识出元素 31
4.2.2 标识出属性 34
4.3 保证数据兼容于文档对象模型 35
4.4 小结 35
第5章 创建良构的XML 36
5.1 文档基础 36
5.1.1 <?xml>声明 36
5.1.2 根元素 38
5.2 创建和描述元素 38
5.2.1 开始和结束元素标记 38
5.2.2 元素内容 39
5.2.3 空元素标记 40
5.2.4 为元素命名 40
5.3 子元素 42
5.4 小结 43
第6章 增添属性 44
6.1 用属性增强元素 47
6.2 属性规则 49
6.2.1 属性的命名 50
6.2.2 属性值 50
6.3 用属性改进空元素 51
6.4 属性的共享 51
6.5 样式表和属性配合使用 51
6.5.1 添加一个样式表 53
6.5.2 一个快速层叠样式表 53
6.5.3 一个快速XSL样式表 54
6.6 小结 55
第7章 XML名字空间 56
7.1 什么是名字空间 56
7.2 在文档内部使用名字空间 57
7.2.1 标识名字空间 57
7.2.2 语法 59
7.2.3 默认名字空间 59
7.3 将名字空间添加到DTD 60
7.4 小结 62
第二部分 DTD的运用 63
第8章 XML文档校验 63
8.1 DTD和校验 63
8.2 将DTD添加到文档 64
8.2.1 链接到文档类型定义 64
8.2.2 嵌入文档类型定义 65
8.3 PUBLIC和SYSTEM DTD 66
8.3.1 引用SYSTEM DTD 66
8.3.2 引用PUBLIC DTD 67
8.4 声明Element类型 67
8.5 控制元素内容 70
8.6 添加注释 73
8.7 小结 73
第9章 定义DTD实体 74
9.1 理解实体 74
9.1.1 内部实体 75
9.1.2 外部实体 75
9.1.3 常规实体 75
9.1.4 参数实体 76
9.2 定义常规实体 76
9.2.1 内部常规实体 76
9.2.2 在实体内使用实体 78
9.2.3 常规实体限制 78
9.2.4 组装 78
9.2.5 外部常规实体 79
9.3 定义参数实体 83
9.3.1 内部参数实体 83
9.3.2 外部参数实体 85
9.4 小结 86
第10章 运用属性 88
10.1 探究属性 88
10.2 属性还是元素 89
10.3 属性的定义 89
10.3.1 控制属性类型 90
10.3.2 设置默认值 94
10.4 定义多个属性 96
10.5 使用预定义的属性 99
10.5.1 xml:space 99
10.5.2 xml:lang 100
第11章 添加其他数据 101
11.1 探究标记 101
11.2 未解析的外部实体 103
11.3 条件语句 105
11.4 添加处理指令 107
11.5 小结 108
第三部分 添加样式 111
第12章 何时使用样式表 111
12.1 什么是样式表 111
12.2 CSS的优点 111
12.3 XSL的优点 114
12.4 如何选择样式表 116
12.5 小结 117
第13章 CSS基础 118
13.1 基本CSS语句 118
13.2 把CSS添加到文档 119
13.3 CSS选择 119
13.3.1 选择元素 120
13.3.2 选择类 121
13.3.3 选择ID 121
13.3.4 根据情况选择 122
13.3.5 使用伪元素 122
13.3.6 使用伪类 123
13.4 字体控制 124
13.4.1 设置字体族科 124
13.4.2 设置字体大小 125
13.4.3 设置字体伸缩 125
13.4.4 设置字体样式 126
13.4.5 设置字体变型 126
13.4.6 设置字体粗细度 126
13.4.7 设置快捷字体 127
13.4.8 设置字体颜色 128
13.5 文本控制 128
13.5.1 设置字母字距 128
13.5.2 设置行高 129
13.5.3 设置文本对齐方式 129
13.5.4 设置单词间距 130
13.5.5 设置自己的对齐方式 130
13.5.6 文字缩排 131
13.5.7 使用文本装饰 131
13.5.8 使用文本阴影 131
13.5.9 使用文字变形 132
13.6 对象框控制 132
13.6.1 设置边框 132
13.6.2 设置边框折叠 134
13.6.3 设置轮廓 135
13.6.4 设置边距 137
13.6.5 添加填充 138
13.6.6 设置背景 139
13.7 组装样式表 143
13.8 小结 146
第14章 CSS:应用 148
14.1 添加内容 148
14.1.1 添加:before 148
14.1.2 添加:after 149
14.1.3 创建计数器和自动编号 151
14.2 使用CSS伪类和伪元素 152
14.2.1 使用:first-child 152
14.2.2 使用:first-line 152
14.2.3 使用:first-letter 154
14.3 对象的可视格式化 155
14.3.1 display属性 156
14.3.2 设置对象位置 159
14.3.3 设置对象大小 163
14.3.4 控制对象的可视性 164
14.3.5 控制对象的overflow和clip属性 164
14.4 控制光标 165
14.5 设置对象的重要性 166
14.6 使用媒体类型 166
14.6.1 使用@media 166
14.6.2 使用@import 167
14.7 了解听觉样式表 168
14.8 小结 170
第15章 XSL基础 171
15.1 背景 171
15.1.1 对XSL的需要 171
15.1.2 XSL的历史和现状 172
15.2 XSL基础 174
15.2.1 通过转换定义样式:XSLT 174
15.2.2 通过XML实现CSS:XSL-FO 175
15.3 XSL软件和XSLT软件 178
15.3.1 编辑/创作工具 178
15.3.2 处理器 179
15.4 XSL-FO软件 181
15.4.1 固有XSL-FO表现器 182
15.4.2 格式化对象到PDF转换器 183
15.5 小结 184
第16章 XSL转换 185
16.1 XSLT的概念 185
16.1.1 源和结果树 185
16.1.2 节点和节点类型 187
16.2 XPath标准 188
16.2.1 环境 190
16.2.2 位置步进语法 191
16.2.3 XPath位置路径示例 195
16.2.4 节点值 196
16.2.5 XPath函数 196
16.3 用XSLT转换XML 202
16.3.1 样式表结构 202
16.3.2 模板规则 208
16.3.3 条件处理 219
16.3.4 排序 221
16.3.5 在结果树中生成内容 224
16.3.6 变量和参数 229
16.3.7 导入和包容样式表 236
16.3.8 特殊结果树输出 239
16.3.9 将节点从源复制到结果树 241
16.3.10 模板规则模式 244
16.3.11 从样式表发出消息 246
16.3.12 XSLT函数 248
16.4 小结 267
第17章 XSL应用 268
17.1 XSL-FO文档结构 268
17.2 布局主控集:页面布局和序列 269
17.2.1 页面布局 269
17.2.2 页面序列 272
17.3 添加内容:页面序列 273
17.3.1 块和内联格式化 275
17.3.2 一个页序列中的固定内容 275
17.3.3 页和页之间不同的内容 277
17.4 查看结果文档 277
17.5 修改区域的显示属性 279
17.6 插入图像 280
17.7 XSL-FO表 280
17.8 小结 286
第四部分 使用大纲 287
第18章 大纲入门 287
18.1 什么是大纲 287
18.2 DTD和大纲的比较 288
18.3 写一个基本的大纲 290
18.3.1 一个分级的大纲 290
18.3.2 大纲元素的平面目录 292
18.4 目前可用的软件 293
18.4.1 大纲编辑器 293
18.4.2 大纲构验器和解析器 295
18.5 小结 296
第19章 大纲的元素、类型和组 297
19.1 大纲元素说明 297
19.2 元素类型 300
19.2.1 复杂类型 300
19.2.2 简单类型 302
19.2.3 定义自己的简单类型 304
19.3 使用元素组 306
19.4 元素内容 306
19.4.1 属性和简单值 306
19.4.2 混合内容 307
19.4.3 空内容 307
19.5 小结 308
第20章 定义大纲的属性 309
20.1 大纲属性说明 309
20.2 属性组 310
20.3 使用大纲注解 311
20.4 使用约束 312
20.4.1 规定一个<choice> 312
20.4.2 创建一个<sequence> 313
20.4.3 使用<all> 314
20.5 创建惟一元素和属性 314
20.6 大纲和名字空间 315
20.7 使用实体 316
20.8 小结 317
第21章 大纲的高级概念 318
21.1 目标名字空间和大纲 318
21.2 未声明的目标名字空间 320
21.3 大纲约束与ID属性 320
21.4 全局和局部声明 321
21.5 将大纲当作多个文档使用 322
21.6 替换组 323
21.7 抽象元素和类型 324
21.8 小结 324
第五部分 使用XML查询 325
第22章 XML查询入门 325
22.1 XML查询要求 325
22.2 XML查询数据模型 326
22.3 XML查询代数 326
22.3.1 数据和类型 328
22.3.2 映射 329
22.3.3 原子数据 330
22.3.4 反复 330
22.3.5 选择 330
22.3.6 限定 331
22.3.7 联结 332
22.3.8 排序 332
22.4 利用XML查询 333
22.5 小结 334
第23章 XLink 336
23.1 理解XLink 336
23.2 XLink语法 337
23.2.1 XLink名字空间 337
23.2.2 XLink属性 338
23.2.3 链接类型 341
23.3 Xbase概览 347
23.4 小结 348
第24章 XPointer的使用 349
24.1 理解XPointer 349
24.2 XPointer大纲 349
24.3 XPointer语法 350
24.3.1 完全形式 351
24.3.2 裸名 351
24.3.3 子序列 352
24.4 Xpointer转义 352
24.4.1 转义XPointer特殊字符 353
24.4.2 转义URI中的字符 353
24.4.3 转义在XML文本中使用的字符 353
24.5 XPointer函数 354
24.5.1 标识一个Iocation-set 354
24.5.2 点位置类型 355
24.5.3 范围位置类型 355
24.5.4 string-range函数 355
24.5.5 range-to函数 356
24.5.6 here函数 357
24.5.7 origin函数 357
24.5.8 start-point函数 357
24.5.9 end-point函数 358
24.6 小结 358
第25章 资源描述框架 360
25.1 什么是RDF和RDF大纲 360
25.1.1 RDF 360
25.1.2 RDF大纲 361
25.2 实现RDF基本模型 361
25.2.1 资源 361
25.2.2 属性 361
25.2.3 语句 362
25.2.4 RDF基本语法 362
25.3 使用RDF容器 364
25.3.1 RDF容器语法 364
25.3.2 容器对象 365
25.3.3 语句 366
25.3.4 URI范式 367
25.4 小结 368
第六部分 实践XML 369
第26章 XHTML 369
26.1 什么是XHTML 369
26.2 HTML到XHTML的转换 369
26.2.1 元素转换 370
26.2.2 从HTML到XHTML的快速转换 371
26.3 未来的XHTML模块 372
26.3.1 结构模块 373
26.3.2 文本模块 373
26.3.3 超文本模块 375
26.3.4 列表模块 375
26.3.5 属示模块 376
26.3.6 编辑模块 377
26.3.7 双向文本模块 378
26.3.8 表单模块 378
26.3.9 表格模块 379
26.3.10 图像模块 381
26.3.11 客户机端图像地图模块 381
26.4 小结 381
第27章 随JavaScript来实现XML 383
27.1 过程 383
27.1.1 XML文档 383
27.1.2 大纲 384
27.1.3 样式表 385
27.1.4 编写脚本 386
27.2 组装 387
27.3 小结 391
第28章 用CGI收集和写入数据 392
28.1 设置变量和打开脚本 392
28.2 文本文件数据库的格式 393
28.3 创建XML文件 393
28.4 打开数据库和开始循环 394
28.5 读入数据 394
28.6 写入数据 394
28.7 保存XML文件并结束程序 395
28.8 完整的脚本 395
28.9 小结 397
第七部分 XML子语言 399
第29章 SYMM和SMIL 399
29.1 SYMM基础 399
29.2 理解SMIL 399
29.3 SMIL编辑器和播放机 400
29.4 SMIL和HTML 401
29.5 SMIL媒体元素 401
29.5.1 未知媒体类型 402
29.5.2 SMIL媒体属性 403
29.6 SMIL布局和格式化元素 404
29.6.1 设置演示文稿:<smil>、<head>和<body> 404
29.6.2 使用元信息 405
29.6.3 使用<layout> 407
29.6.4 使用<root-layout> 408
29.6.5 使用<region> 408
29.6.6 使用<viewport> 409
29.7 设置SMIL计时 412
29.7.1 站点同步 412
29.7.2 计时和同步属性 414
29.8 对象和演示文稿之间的链接 414
29.8.1 使用<a> 414
29.8.2 使用<area> 415
29.8.3 链接属性 415
29.9 创建SMIL动画和变形 416
29.9.1 动画效果 416
29.9.2 变形效果 417
29.10 小结 418
第30章 使用可扩展矢量图形 419
30.1 SVG入门 419
30.2 SVG语法 420
30.2.1 SVG数据类型 421
30.2.2 SVG元素 422
30.2.3 SVG属性 430
30.3 一个SVG的例子 435
30.4 小结 437
第31章 科学语言:MathML和CML 438
31.1 数学语言:MathML 438
31.1.1 MathML元素 438
31.1.2 MathML示例 452
31.2 化学语言:CML 453
31.2.1 CML元素 453
31.2.2 CML示例 454
31.3 小结 460
附录 461
附录A DTD关键代码和一个示范DTD 461
附录B CSS语言参考 480
附录C XSL格式化对象参考 526
附录D UNICODE字符集 567