译者序
作者简介
前言
第一部分 基础篇
第1章 XML简介
1.1 XML的起源和国的
1.1.1 标记语言
1.1.2 SGML和文档标记语言
1.1.3 XML的目标
1.2 W3C规范的各个阶段
1.3 XML核心
1.3.1 XML1.0语法
1.3.2 描述和验证
1.3.3 XML命名空间
1.3.4 XML信息集合
1.3.5 定位和锻接XML
1.3.6 转换XML
1.4 XML实际应用
1.4.1 XML词汇表
1.4.2 XML编程
1.5 XML表示
1.6 用于服务器和数据库的XML
1.7 可扩展通信协议
1.8 电子商务的基础
1.9 语义和元数据
1.10 小结
1.11 参考资料
第2章 基本XML语法
2.1 标记语法
2.1.1 字符
2.1.2 简单命名
2.2 元素
2.2.1 标记
2.2.2 空元素标记
2.2.3 标记:一个简单的例子
2.3 XML数据结构
2.3.1 层次树结构
2.3.2 字符串
2.4 属性
2.5 字符数据
2.5.1 空白
2.5.2 行尾的处理
2.6 元素和属性的语法摘要
2.7 字符和实体引用
2.7.1 字符引用
2.7.2 实体引用
2.8 专用标记
2.8.1 注释
2.8.2 处理指令
2.8.3 CDATA节
2.9 文档结构
2.9.1 序言
2.9.2 主体
2.9.3 尾声
2.10 格式正规的XML文档
2.11 有效的XML文档
2.12 XML解析器
2.12.1 解析器级别
2.12.2 解析器实现
2.12.3 一些特殊解析器
2.12.4 解析器链接网站
2.12.5 XML语法小结
2.13 实例:简单的发货单
2.14 小结
第3章 深入的XML语法
3.1 进一步要考虑的问题
3.1.1 特殊属性
3.1.2 属性值规范化
3.2 现有标准的使用
3.2.1 XML1.0参考
3.2.2 ISO
3.2.3 Unicode
3.2.4 IEYF
3.2.5 IANA
3.3 XML的命名空间
3.3.1 XML命名空间的概念
3.3.2 如何保持XML命名的惟一性
3.3.3 声明命名空间
3.3.4 默认命名空间
3.3.5 作用域
3.3.6 命名空间和属性
3.3.7 小结:命名空间
3.4 XML Base
3.5 实例:使用命名空间的发货单
3.6 小结
3.7 参考资料
第4章 XML信息集合
4.1 XML信息集合的概念
4.1.1 实体引用
4.1.2 基URI
4.2 信息项
4.2.1 文档信息项
4.2.2 命名空间信息项
4.2.3 元素信息项
4.2.4 属性信息项
4.2.5 字符信息项
4.2.6 注释信息项
4.2.7 处理指令信息项
4.2.8 CDATA开始和结束标记信息项
4.2.9 内部实体信息项
4.2.10 外部实体信息项
4.2.11 未解析实体信息项
4.2.12 未展开的实体引用信息项
4.2.13 实体开始和结束标记信息项
4.2.14 文档类型声明信息项
4.2.15 表示法信息项
4.3 小结
第5章 文档类型定义
5.1 为什么要验证XML的有效性
5.1.1 数据需要的描述和验证
5.1.2 有效的XML
5.1.3 文档类型定义
5.2 DTD结构
5.3 将DTD和XML数据关联
5.3.1 文档类型声明
5.3.2 内部和外部DTD子集
5.4 基本DTD声明
5.4.1 元素类型声明
5.4.2 属性声明
5.4.3 表示法:非XML数据
5.5 实体
5.5.1 已解析实体
5.5.2 未解析实体
5.5.3 实体引用
5.5.4 一般实体
5.5.5 参数实体
5.5.6 ISO和其他标准化实体集
5.5.7 标准字符实体引用集
5.6 条件部分
5.7 独立文档声明
5.8 有效性验证XML解析器
5.9 DTD的局限性
5.10 <Toysco>例子
5.11 小结
第6章 XML Schema介绍
6.1 为什么模式很重要
6.1.1 W3C XML Schema的背景
6.1.2 W3C XML Schema的优点
6.1.3 选择一个解析器
6.2 使用XML Schema
6.2.1 主要组件
6.2.2 复杂类型
6.2.3 声明属性
6.2.4 内容模型
6.2.5 二级组件
6.2.6 雇员模式
6.3 创建自己的数据类型
6.3.1 数据类型的特征
6.3.2 派生和刻面
6.4 ToysCO实例
6.5 小结
第7章 其他Schema
7.1 早期的&hema建议
7.1.1 DDML
7.1.2 DT4DTD
7.1.3 SOX
7.1.4 XML-Data
7.2 XMLDATA简化
7.2.1 XDR &Schema结构
7.2.2 XDR和XML Schema
7.2.3 实例--发货单的XDR Schema
7.2.4 XDR小结
7.3 可供选择的验证工具
7.4 RELAX
7.4.1 RELAX的结构
7.4.2 RELAX的元素
7.4,3 数据类型
7.4.4 实现
7.4.5 RELAX小结
7.5 TREX
7.5.1 TREX的元素
7.5.2 数据类型
7.5.3 TREX处理程序
7.5.4 TREX Schema
7.5.5 实例
7.5.6 TREX小结
7.6 Schematron
7.6.1 Schematron的结构
7.6.2 Schematron的元素
7.6.3 Schematron的实现
7.6.4 Schematron小结
7.7 小结
第8章 XML导航工具--XPah
8.1 XPath简介
8.1.1 XPath及其作用
8.1.2 XPath的工作原理
8.1.3 XPath数据模型
8.2 XPath表达式及定位路径
8.3 XPath语法
8.4 XPath函数
8.4.1 节点集合函数
8.4.2 布尔函数
8.4.3 数值函数
8.4.4 字符串函数
8.4.5 XPath语法的变化形式
8.4.6 非缩写的相对定位路径
8.4.7 非缩写的绝对定位路径
8.4.8 缩写的相对定位路径
8.4.9 缩写的绝对定位路径
8.5 XPath是XSLT的基础
8.6 XPath是XPointer的基础
8.7 展望XPath
8.7.1 XPath 2.0
8.7.2 XPath和 XML Schema
8.7.3 XPath和正规表达式
8.7.4 XPath和XQury
8.8 小结
第9章 转换XML
9.1 XSLT的起源和目的
9.2 什么是转换
9.3 定位数据:XPath
9.3.1 定位路径
9.3.2 函数
9.3.3 在转换中使用XPath
9.4 转换数据:XSLT
9.4.1 XSLT的元素
9.4.2 完整列表
9.4.3 常用元素
9.4.4 XSLT编程风格
9.5 执行转换
9.5.1 在代码中转换
9.5.2 Saxon
9.5.3 VBXML的XSL测试器
9.6 XSLT用于表示:XML转换成HTML的实例
9.6.1 书籍目录源文档
9.6.2 输出结果
9.7 XSLT用于数据转换:XML之间转换的实例
9.7.1 转换
9.7.2 进一步处理
9.8 小结
第10章 文档片断、XLink和XPointer
10.1 XML文档片断交换
10.1.1 文档片断的使用
10.1.2 问题:Bare文档片断并不总是充分的
10.1.3 解决办法:上下文信息
10.1.4 实例
10.1.5 如何传输文档片断
10.1.6 小结
10.2 链接
10.2.1 链接的概念
10.2.2 W3C的规范:XLink
10.2.3 简单链接
10.2.4 扩展链接
10.2.5 XLink小结
10.3 XPointer
10.3.1 HTML指针
10.3.2 XPointer规范
10.3.3 如何指定文档片断标识符
10.3.4 XPointer中的错误
10.3.5 小结
10.4 结论
第二部分编程篇
第11章 文档对象模型
11.1 文档对象模型的概念
11.1.1 XML文档结构
11.1.2 为什么使用DOM
11.1.3 实践中的考虑
11.1.4 DOM规范
11.1.5 现实世界中的 DOM
11.1.6 特殊 XML DOM实例:HTML DOM
11.2 使用DOM
11.2.1 DOM API
11.2.2 客户端和服务器端
11.2.3 DOM在出版过程中的使用方案
11.3 使用 DOM和 XML的实例应用
11.3.1 一个简单的客户端实例
11.3.2 另一个实例(使用Java)
11.3.3 DOM Level 2
11.3.4 对核心规范的修改
11.3.5 视图规范
11.3.6 事件规范
11.3.7 样式规范
11.3.8 遍历和范围规范
11.3.9 一个快速实例
11.3.10 DOM Level3
11.4 DOM和XML的未来
11.5 小结
第12章 SAX 2
12.1 概述
12.2 对SAX的需求
12.2.1 SAX和DOM的对比
12.2.2 选择哪一个
12.3 理解SAX
12.4 设置环境
12.5 装载阅读器
12.6 内容处理程序
12.7 错误处理程序
12.8 DTD处理程序
12.9 有效性验证
12.10 默认处理器
12.11 常见缺陷
12.11.1 属性的顺序
12.11.2 文本数据
12.11.3 没有预读
12.12 实例
12.12.1 获得数据
12.12.2 字数计数器
12.12.3 使用过滤器
12.13 小结
第13章 基于模式的程序设计
13.1 简短的历史
13.2 基于模式程序设计的目标
13.2.1 代码明晰
13.2.2 更好的编程模型
13.2.3 正式方法
13,2.4 描述性语言的最佳使用
13.3 基于模式的程序设计实践
13.3.1 XML和XSLT
13.3.2 MSXM3.0
13.3.3 文档一视图一控制器编程
13.3.4 实现
13.4 现有的XML树实例
13.4.1 XML字母表的动态指南
13.4.2 模型:XML文档
13.4.3 客户端
13.4.4 服务器端
13.5 学过的课程
13.6 接口过程和描述性代码
13.7 状态机
13.7.1 Petri网
13,7.2 使用Petri网的SBP应用的形式
13.7.3 分布式系统
13.7.4 MVC是最后的单词吗
13.8 小结
第三部分XML数据篇
第14章 数据建模
14.1 数据建模简介
14.1.1 信息建模
14.1.2 静态信息模型
14.1.3 动态建模
14.1.4 选择动态模型
14.2 设计XML文档
14.2.1 用于消息的XML
14.2.2 用于永久性数据的XML
14.2.3 一般设计问题
14.3 编写模式
14.3.1 模式库
14.3.2 DTD和Schema能够表示的约束
14.3.3 命名空间
14.3.4 元素与类型
14.3.5 局部声明和定义与全局声明和定义
14.3.6 解释我们的模式
14.3.7 小结
第15章 XML数据郭定
15.1 简介
15.1.1 数据绑定的概念
15.1.2 XML数据绑定
15.1.3 简单的数据绑定概念
15.1.4 数据对象
15.1.5 API存在什么问题
15.1.6 数据绑定框架需求
15.2 用Castor进行XML数据绑定
15.2.1 用Castor内置的自省
15.2.2 使用Castor映射文件
15.2.3 使用Castor的源代码生成器
15.3 使用XSLT进行XML数据绑定
15.3.1 创建对象模型的可表示视图
15.3.2 模式转换
15.4 用XML数据绑定代替对象序列
15.4.1 跨系统数据共享
15.4.2 数据可访问性
15.4.3 执行性能
15.4.4 另外一些不同点
15.4.5 结论
15.5 小结
15.6 资源
第16章 查询XML
16.1 W3C XML查询语言
16.1.1 需求
16.1.2 使用案例
16.1.3 数据模型
16.1.4 代数学
16.1.5 XQuery
16.1.6 查询实例
16.2 XQuery和XSLT的比较
16.3 小结
第17章 案例研究:数据库和XML
17.1 业务问题
17.2 提议体系结构
17.3 分析数据
17.4 显示一份简历:显示代码
17.5 插入或更新一份简历:实现编辑的代码
17.6 查询库:查询代码
17.7 进一步改进
17.8 小结
第四部分表示篇
第18章 XML的图形化表示
18.1 基于XML的图形和动画技术
18.2 SVG与常见Web图形的区别
18.3 可缩放矢量图形概述
18.4 SVG元素概述
18.5 SVG查看器
18.6 水平条状国
18.7 交互式的条状图
18.8 在SVG中使用CSS
18.9 用XSLT创建SVG
18.10 用XSLT创建竖直条状图
18.11 在XSL-FO中结合SVG
18.12 生成SVG的一些商业工具
18.13 小结
18.14 在线资源
第19章 VoiceXML
19.1 语音应用程序的体系结构
19.1.1 硬件层
19.1.2 语音层
19.1.3 表示层
19.1.4 中间件
19.1.5 数据层
19.1.6 语音应用中的请求一响应过程剖析
19.2 VoiceXML基础
19.2.1 表单
19.2.2 菜单
19.2.3 直接对话框和混合自发的比较
19.2.4 链接
19.2.5 事件
19.2.6 对象
19.2.7 多文档应用
19.3 一个实例
19.4 VoiceXML的局限性
19.5 其他方案
19.6 VoiceXML资源
19.7 小结
第20章 XSL格式化对象:XSL-FO
20.1 XSL-FO概述
20.2 XSL-FO和CSS的比较
20.3 XSL-FO工具
20.4 创建简单的XSL-FO文档
20.4.1 创建简单的包括列表的XSL-FO文档
20.4.2 创建简单的XSL-FO表格
20.5 创建简单的XSL-FO发货单
20.6 使用XSL-FO生成PDF文档
20.7 在SVG中使用XSL-FO
20.7.1 使用XSL格式化程序作为XSL-FO的Web浏览器
20.7.2 展望未来
20.8 小结
第五部分XML无数据篇
第21章 案例研究:生成一个站点索引
21.1 什么是站点索引
21.1.1 索引实例
21.1.2 词汇表与页面标记设计
21.1.3 词汇表
21.1.4 用于索引的页面标记
21.1.5 索引器和生成器
21.2 HTML实例
21.2.1 实例网站
21.2.2 读取源文档
21.2.3 词汇表
21.2.4 生成的索引页面
21.2.5 索引转化到HTML
21.3 XML源文档
21.4 索引生成器组件
21.4.1 逻辑关系分析
21.4.2 物理设计
21.5 运行生成器
21.5.1 运行词汇表程序
21.5.2 运行IndexingSpider程序
21.5.3 运行BrowsableIndex程序
21.6 发布
21.7 小结
第22章 RDF
22.1 元数据简介
22.1.1 网页中的元数据
22.1.2 Dublin Core
22.2 RDF:XML元数据标准
22.2.1 元数据模型
22.2.2 RDF语法
22.3 小结
第23章 RDF编码实例和RDDL
23.1 RDF的应用:注释
23.1.1 Annotea
23.1.2 构建注释服务器
23.2 RDF解析器
23.2.1 解析器的输出
23.2.2 XSLT样式表
23.2.3 事件驱动的RDF解析器
23.3 RDF DOM或API
23.4 RDF数据仓库
23.5 查询元数据存储
23.5.1 查询RDF数据存储
23.5.2 使微软索引服务器返回RDF语法
23.6 结论
23.7 RDF和XML中的命名空间
23.7.1 资源目录描述语言
23.7.2 RDDL实例
23.8 小结
第六部分XML在B2B中的应用
第24章 SOAP
24.1 SOAP简介
24.1.1 SOAP诞生之前
24.1.2 SOAP消息
24.1.3 WSDL概述
24.2 SOAP绑定到传输协议
24.2.1 将HTTP作为标准同步协议使用
24.2.2 通过SNTP和MIME的异步通信
24.2.3 其他传输机制
24.3 SOAP的普通实现
24.3.1 Apache SOAP及IBM网络服务工具包
24.3.2 Microsoft的SOAP工具包、Biztalk服务以及.NET中的网络服务
24.3.3 Perl和SOAP::Lite
24.4 通过HTTP的同步SOAP实例
24.4.1 服务器端应用的实现
24.4.2 客户端应用的实现
24.5 通过SMTP的异步SOAP例子
24.5.1 发货单服务器--通过SMTP的Microsoft SOAP客户端
24.5.2 执行服务器--通过SMTP的Apache/IBM Java服务器
24.6 XML协议
24.7 小结
第25章 利用Microsoft BizTalk Server实现B2B
25.1 B2B商业需求
25.1.1 数据表示
25.1.2 消息传递
25.1.3 业务过程建模
25.2 一些解决方案
25.2.1 用XML表示数据
25.2.2 Internet通信协议
25.2.3 B2B框架
25.3 微软BizTalk服务器
25.3.1 数据表示
25.3.2 消息服务
25.3.3 Orchestration和XLAN调度程序
25.3.4 跟踪
25.3.5 BizTalk服务器的扩展能力
25.3.6 消除易混淆的地方
25.4 XYZ:B2B BizTalk样例
25.4.1 业务问题
25.4.2 消息
25.4.3 映射
25.4.4 计划
25.4.5 将计划投入运行
25.5 小结
第26章 电子商务集成
26.1 电子商务简介
26.2 集成问题和解决方案
26.2.1 集成购买订单
26.2.2 模式转换
26.2.3 转换中的业务规则
26.2.4 解决方案体系结构
26.3 实例:提交一个PO(MS XML解析器)
26.4 小结
第27章 B2B的禾来:WSDL和UDDI
27.1 简介
27.2 WSDL
27.2.1 WSDL:理论
27.2.2 生成WSDL
27.2.3 使用IBM的Java方法生成WSDL
27.2.4 WSD实践
27.2.5 鸡和蛋
27.3 UDDI
27.3.1 UDDI概念
27.3.2 UDDI查询
27.3.3 发布到UDDI
27.4 小结