第一部分 XML快速入门 3
第1章 XML——常识问答 3
1.1 能以不到半页的文字解释XML吗 3
1.2 XML的名字从何而来 4
1.3 它可以做什么 5
1.4 听起来比较复杂 5
1.5 你能解释术语“标记语言”吗 5
1.6 XML仅仅是另一种标记语言吗 5
1.7 XML看起来像什么 6
1.8 因为我可以使用XML来建立自己的标记,所以它是可扩充的 6
1.9 但为什么人们不愿意创造自己的基于XML的标记语言呢 7
1.10 我需要了解一些基本思想吗 10
1.11 这就是所谓的“结构化信息”吗 11
1.12 是不是某个人凭空“发明”了XML 11
1.13 SGML有问题吗 12
1.14 你可以画一张图来表示这些语言之间的关系吗 12
1.15 可以以某种方式检查XML文档结构吗 13
1.16 如果不想检查文档结构怎么办 14
1.17 怎样使XML在浏览器中看起来更加漂亮 14
1.18 如何指定超文本链接 15
1.19 XML是真正以国际标准为基础的 15
1.20 所有这一切与HTML的关系以及浏览器的概念 15
1.23 如果XML足够智能化,为什么Web一开始不这样设计呢 16
1.21 为什么不让人们创造自己的语言——为什么要基于XML 16
1.22 在哪些方面XML适合其他信息技术标准 16
1.24 谁在使用XML,目的是什么 17
第2章 应用XML 18
2.1 采用Microsoft活动频道的“推”技术 18
2.1.1 解决方案概述 19
2.1.2 进入XML 20
2.1.3 结论 25
2.2 网上银行 25
2.2.1 解决方案概述 26
2.2.2 进入XML 26
2.2.3 结论 27
2.3 软件发布 28
2.3.1 解决方案概述 28
2.3.2 进入XML 29
2.3.3 结论 30
2.4 Web自动化 30
2.4.1 解决方案概述 32
2.4.2 进入XML 32
2.4.3 结论 34
2.5 数据库集成 34
2.5.2 进入XML 35
2.5.1 解决方案概述 35
2.5.3 结论 38
2.6 本地化 39
2.6.1 解决方案概述 40
2.6.2 XML的优势 41
2.6.3 结论 42
2.7 过渡数据的表示 42
2.7.1 解决方案概述 43
2.7.2 XML的优势 43
2.7.3 结论 44
2.8.1 解决方案概述 45
2.8 科学发布——化学标记语言 45
2.8.2 进入XML 46
2.8.3 结论 47
第3章 XML的商业利益 49
3.1 浏览器决定信息的显示方式 49
3.1.1 一次写作,多次格式化 49
3.2 作者应当创作内容,而不是格式 50
3.2.1 寿命更长,更成功 50
3.2.2 写作一次,多次重用 51
3.2.3 注释放在哪里 52
3.2.4 展示及说明 53
3.2.5 相互交换数据 54
3.2.6 什么文档 55
3.2.7 更聪明地工作,而不是更辛苦地工作 56
3.3 总结 56
第4章 用XML获得竞争优势 57
4.1 建立商店 57
4.2 创建产品目录 58
4.3 发布商品目录 60
4.3.1 在服务器端将XML处理成HTML 60
4.3.2 在客户机端将XML处理成HTML 61
4.4 保持商品目录的准确性 62
4.3.3 直接显示XML 62
4.4.1 在客户机端检验 63
4.4.2 在服务器端检验 63
4.5 使站点更加漂亮 64
4.6 冲浪者的自助 66
4.7 通知用户 66
4.8 丰富经验 68
4.9 付款问题 68
4.10 集成现有系统 69
4.11 节省浏览时间 70
4.13 完善市场 71
4.14 准备改变 71
4.12 领先于用户 71
第5章 足够的细节 73
5.1 大的框架 73
5.2 XML文档的两种视图 75
5.3 两类XML文档 76
5.4 两类XML处理器 76
5.5 msxml简介 77
5.6 一个最简单的XML文档 77
5.7 创建XML文档 79
5.7.1 开始和结束标记 80
5.7.2 属性的赋值 83
5.7.3 实体引用 84
5.7.4 注释 87
5.7.5 CDATA部件 87
5.7.6 处理指令 89
5.7.7 文档类型声明 90
5.7.8 小结 90
5.8 创建XML DTDs 91
5.8.1 元素类型声明 92
5.8.2 属性列表声明 94
5.9 实体声明 96
5.10 小结 97
5.11 按DTD来检验XML文档 99
第一部分 举例讲解XML 103
第6章 在Internet Explorer 4中使用XML 103
6.1 在HTML浏览器中显示XML 103
6.1.1 例1——将XML数据显示为基本HTML表 105
6.1.2 例2——XML存入HTML文档 107
6.1.3 例3——以嵌入式HTML表格的形式显示分层的XML 109
6.1.4 例4——执行运算 110
6.1.5 例5——通过XML定位 112
6.2 用XSL将XML转化成HTML 115
6.2.1 例6——最简单的XSL样式表 116
6.2.2 例7——用XSL创建HTML表 117
6.2.3 例8——用XSL对XML数据进行计算 119
第7章 用XML进行数据库发布 122
7.1 从数据库生成XML 124
7.2 用XML服务于Web浏览器 127
第8章 用WIDL实现Web自动化 132
8.1 创建WIDL文档 133
8.2 WIDL服务定义文档 137
8.3 WIDL方法的优势 138
8.4 WIDL的更进一步的功能 139
8.5 用于Disk Selector服务的完整的Java程序 139
9.1 一个简单的频道 144
第9章 使用CDF进行推式发布 144
9.2 添加新项到频道中 153
9.3 时间安排 155
9.4 个性化 155
第10章 开发XML实用程序 156
10.1 ESIS分析程序输出格式 156
10.2 是否分析——是关键所在 157
10.3 只读实用程序 163
10.3.1 XSL样式表单语言 164
10.3.2 Perl脚本语言 165
10.3.3 使用Python作为报告工具 169
10.3.4 使用Java作为报告工具 170
10.4 读写实用程序 173
第三部分 近观XML和相关标准 179
第11章 XML标准 179
11.1 设计目的 179
11.2 完整的层次结构图 180
11.2.1 序言 180
11.2.2 文档类型声明 180
11.2.3 文档类型定义 182
11.2.4 根元素 182
11.2.6 总结 183
11.2.5 收尾过程 183
11.3 更多术语 184
11.4 特殊字符的约束 184
11.5 空白处理 185
11.6 注释 187
11.7 处理指令 188
11.8 CDATA部分 189
11.9 XML声明 190
11.9.1 XML文档中的版本信息 190
11.9.2 字符集编码信息 191
11.9.3 单独的文档声明 191
11.10 开始标记、结束标记以及空元素 192
11.11 属性 194
11.12 文档类型声明 195
11.12.1 内部子集 195
11.12.2 外部子集 195
11.13 元素类型声明 197
11.14 元素类型内容模型 197
11.14.1 一个接一个的元素序列 197
11.14.2 从元素列表中选择,只允许选择一个 198
11.14.3 出现一次或者一次也不出现的元素 198
11.14.4 出现0次或者多次的元素 199
11.14.5 出现一次或者多次的元素 200
11.14.6 以任意顺序包含任何其他元素的元素 200
11.14.8 字符数据 201
11.14.7 一些更复杂的示例 201
11.15 属性列表声明 203
11.15.1 字符串属性 203
11.15.2 枚举属性 203
11.15.3 ID/IDREF/IDREFS属性 204
11.15.4 ENTITY/ENTITIES 205
11.15.5 NMTOKEN/NMTOKENS 205
11.15.6 NOTATION 206
11.16 属性默认值 206
11.16.1 Required属性 206
11.16.2 Implied属性 207
11.16.3 Fixed属性 208
11.17 实体声明 208
11.17.1 参数实体 209
11.17.2 通用实体 209
11.17.3 外部实体 210
11.18 记号声明 212
11.18.1 外部数据实体 213
11.19 条件节 213
第12章 使用XLL进行XML超文本链接 216
12.1 超文本术语 216
12.3 链接识别 217
12.2 与现存标准的关系 217
12.5 show和actuate属性 218
12.4 LINK信息属性 218
12.6 指定资源的地址 220
12.7 XPointers 220
12.7.1 相对位置项的一些参数 221
12.8 扩展链接 222
12.9 使用固定属性 223
12.10 属性映射 224
13.1 XSL的目的 226
13.2 需要一种脚本语言 226
第13章 使用XSL进行XML格式化 226
13.3 与CSS的关系 227
13.4 与DSSSL的关系 227
13.5 与HTML的关系 228
13.6 设计原则 228
13.7 XSL总体结构 229
13.8 构造规则 229
13.9 根规则 230
13.10 多个目标元素模式 231
13.11 祖先模式 231
13.14 通配符模式 232
13.12 后代模式 232
13.13 祖先与后代结合的模式 232
13.15 属性 233
13.16 位置限定符 233
13.17 唯一元素限定符 234
13.18 任意顺序的多个元素 234
13.19 样式规则 235
13.20 样式宏 235
13.21 动作 236
13.23 define-macro元素和invoke-macro元素 238
13.24 默认规则 238
13.22 import元素 238
13.25 脚本 239
13.26 内置函数 240
13.26.1 formatNumber函数 240
13.26.2 formatNumberList函数 240
13.26.3 ancestor函数 240
13.26.4 childNumber函数 242
13.26.5 ancestorChildNumber函数 242
13.26.6 path函数 244
13.26.7 hierarchicalNumberRecursive函数 245
13.28 HTML流对象 247
13.27 把XML文档链接到样式表 247
14.1 Unicode的起源 249
第14章 Unicode标准 249
14.2 Unicode和W3C 250
14.3 Unicode概述 250
14.4 Unicode和ISO 10646 251
14.5 设计目的 251
14.6 代用 252
14.7 变换格式 252
14.8 字节顺序标志 252
14.10 Unicode和XML 253
14.9 Unicode和编程语言 253
14.11 UTF-8 254
第15章 文档对象模型 255
15.1 设计目的 255
15.2 DOM规范语言 256
15.3 DOM对象类型 256
15.4 Node对象 256
15.5 element对象 257
15.6 document对象 257
15.11 NodeEnumberator对象 258
15.10 EditableNodeList对象 258
15.12 AttributeList对象 258
15.8 DOMFactory对象 258
15.7 DOM对象 258
15.9 NodeList对象 258
15.13 Attribute对象 259
15.14 Comment对象 259
15.15 PI对象 259
15.16 Text对象 259
15.17 HTML特有的DOM组件 259
15.17.1 HTMLDocument对象 259
15.17.2 HTMLElement对象 260
15.18.2 Element Definition对象 261
15.18 XML特有的DOM组件 261
15.18.1 Document Type对象 261
15.19 DOM的使用和用户 262
第16章 深入SGML 263
16.1 XML中没有包括的有用的SGML特性(依个人的选择) 263
16.1.1 省略的标记最小化 264
16.1.2 空白处理 264
16.1.3 条件节 264
16.1.4 CDATA元素 264
16.2 NSGMLS分析程序 265
16.3 简单的SGML文档 265
16.4 从SGML到XML的转换 266
16.5.1 省略的标记最小化 267
16.5 一些示例 267
16.5.2 条件节 270
16.5.3 CDATA元素 276
16.6 SGML查看器 277
16.6.1 样式表语言 284
16.6.2 查看标记 285
16.6.3 针对结构的搜索 285
16.6.4 创建超文本 285
16.6.6 从Multidoc Pro到XML 286
16.7 Jade DSSSL引擎 286
16.6.5 处理Multidoc Pro样式表 286
第四部分 基于XML的电子商务初步方案 293
第17章 OFX(开放式金融交换) 293
17.1 OFX的一些设计原则 294
17.1.1 开放性 294
17.1.2 可扩展性 294
17.1.3 与客户端无关性 294
17.1.4 可靠性 294
17.1.5 安全性 294
17.1.6 批处理 295
17.1.7 国际性 295
17.2 OFX的总体结构 295
17.4 支持OFX的PC应用程序软件 297
17.3 有关OFX更多的信息 297
第18章 XML/EDI-XML和电子数据交换 298
18.1 XML/EDI 299
18.2 作为EDI格式的XML 300
18.3 数据操作代(databots) 300
18.4 XML/EDitors 300
18.5 电子目录 301
18.6 更多的信息 301
第19章 开放式交易协议 302
19.1 OTP的设计 303
19.3 OTP中的交易类型 304
19.2 OTP的好处 304
19.4 OTP消息的结构 306
19.4.1 Order组件 306
19.4.2 Brandlist组件 307
19.5 其他注意事项 309
19.6 更多信息 310
附录A 有关XML及其相关标准的详细资料 311
A.1 空白处理 311
A.2 系统标识符和公共标识符 314
A.3 属性值的规范化 314
A.4 语言标识 315
A.5 确定性的内容模型 316
A.7 外部实体中的字符编码 317
A.6 有害的混合内容 317
A.9 XSL中的规则仲裁 318
A.8 辨认XML中的字符编码 318
附录B 关于本书CD-ROM的说明 321
B.1 software子目录 321
B.2 gallery子目录 321
B.3 docs子目录 322
附录C OTP规范的序言 323
C.1 序言 323
C.2 Internet上的商务——一个不同的模式 324
C.3.3 商家 325
C.3.5 顾客 325
C.3.4 银行和金融机构 325
C.3.2 支付商标 325
C.3.1 电子商务软件开发商 325
C.3 OTP带来的好处 325
C.4 OTP基准 326
C.5 文档的目标 326
C.6 目的 327
C.7 文档的范围 327
C.7.1 与其他支付方法或者初始方案的关系 328
C.8 预期的读者群体 329
C.9 文档结构 329
C.10 相关的文档 330