内容简介
第Ⅰ部分 XML介绍
第1章 什么是XML
1.1初识XML:数据描述和标记语言
1.1.1二进制文件
1.1.2文本文件
1.1.3标记语言简史
1.2 XML的诞生
1.3 XML的优点
3.1 XML规则
1.3.2数据的分层表示形式
1.3.3通用性
1.4 XML的实际应用
1.4.1数据和文档
1.4.2 XML场景
1.4.3 XML技术
1.5小结
第2章 良构的XML
2.1良构的定义
2.2在文本编辑器中创建XML
2.2.1禁止的字符
2.2.2 XML序言
2.2.3创建元素
2.2.4属性
2.2.5元素与属性内容
2.2.6处理指令
2.2.7 CDATA节
2.3高级XML解析
2.3.1 XMl等价性
2.3.2空白处理
2.3.3错误处理
2.4 XML信息集
2.4.1文档信息项
2.4.2元素信息项
2.4.3属性信息项
2.4.4处理指令信息项
2.4.5字符信息项
2.4.6注释信息项
2.4.7名称空间信息项
2.4.8文档类型声明信息项
2.4.9未扩展实体引用信息项
2.4.10未解析实体信息项
2.4.11符号信息项
2.5小结
第3章 XML名称空间
3.1名称空间的定义
3.2需要名称空间的原因
3.3选择名称空间的方法
3.3.1 URL、URI和URN
3.3.2创建第一个名称空间
3.4声明名称空间的方法
3.4.1名称空间的作用域
3.4.2声明多个名称空间
3.4.3修改名称空间定义
3.5名称空间的实际应用
3.5.1 XML Schema
3.5.2多名称空间文档
3.6使用名称空间的时机
3.6.1何时需要使用名称空间
3.6.2何时不需要使用名称空间
3.6.3版本控制和名称空间
3.7常见的名称空间
3.7.1 XML名称空间
3.7.2 XMLNS名称空间
3.7.3 XML Schema名称空间
3.7.4 XSLT名称空间
3.7.5 SOAP名称空间
3.7.6 WSDL名称空间
3.7.7 Atom名称空间
3.7.8 MathML名称空间
3.7.9 Docbook名称空间
3.8小结
第Ⅱ部分 验证
第4章 文档类型定义
4.1文档类型定义的概念
4.1.1使用DTD
4.1.2使用jEdit
4.1.3详述DTD
4.1.4 DTD共享
4.2 DTD剖析
4.2.1元素声明
4.2.2属性声明
4.2.3实体声明
4.3 DTD的局限性
4.4小结
第5章 XML Schema
5.1 XML Schema的优点
5.1.1 XML Schema使用XML语法
5.1.2 XML Schema支持名称空间
5.1.3 XML Schema的数据类型
5.1.4 XML Schema的内容模型
5.1.5 XML Schema规范
5.2 XML Schema实践
5.3 XML Schema的定义
5.3.1 <schema>声明
5.3.2 <element>声明
5.3.3混合内容
5.3.4 <group>声明
5.3.5 <attribute>声明
5.3.6通讯录的XML Schema
5.3.7数据类型
5.3.8 <simpleType>声明
5.4创建一个来自多个文档的架构
5.4.1 <import>声明
5.4.2 <include>声明
5.5 XML Schema的开发文档
5.6 XML Schema 1.1
5.6.1宽松的规则
5.6.2 <assert>
5.7小结
第6章 RELAX NG与Schematron
6.1为什么需要更多的XML验证方法
6.2设置环境
6.3使用RELAX NG
6.3.1理解RELAX NG基础
6.3.2理解RELAX NG紧凑语法
6.3.3两种RELAX NG格式的转换
6.3.4约束内容
6.3.5在RELAX NG架构中复用代码
6.4使用Schematron
6.4.1理解Schematron基础
6.4.2选择Schematron版本
6.4.3理解基本过程
6.4.4编写Schematron基本规则
6.4.5创建Schematron文档
6.4.6向消息添加更多信息
6.4.7 Schematron约束取值
6.4.8 Schematron处理协约束
6.4.9在XML Schema中使用Schematron
6.5小结
第Ⅲ部分 处理
第7章 从XML中提取数据
7.1文档模型:XML的内存表示
7.1.1初识模型:DOM、XDM与PSVI
7.1.2一个样例DOM树
7.1.3 DOM节点类型
7.1.4 DOM节点列表
7.1.5 DOM的限制
7.2 XPath语言
7.2.1 XPath基础
7.2.2 XPath谓词:完整的故事
7.2.3 XPath步与轴
7.2.4 XPath表达式
7.2.5 XPath表达式中的变量
7.2.6 XPath2中的新表达式
7.2.7 XPath函数
7.2.8 XPath集合运算
7.2.9 XPath与名称空间
7.3小结
第8章 XSLT
8.1 XSLT的用途
8.1.1 XSLT作为声明性语言
8.1.2 XSLT作为功能性语言
8.2建立XSLT开发环境
8.2.1设置.NET版本的SAXON环境
8.2.2设置Java版本的Saxon环境
8.3基本的XSLT元素
8.3.1 <xsl:stylesheet>元素
8.3.2 <xsl:template>元素
8.3.3 <xsl:apply-templates>元素
8.3.4 <xsl:value-ot>元素
8.3.5 <xsl:for-each>元素
8.3.6推处理与拉处理
8.3.7 XPath在XSLT中的作用
8.3.8使用命名模板
8.3.9 <xsl:call-template>元素
8.3.10 XSLT中document()函数
8.3.11条件逻辑
8.3.12 <xsl:param>元素
8.3.13 <xsl:sort>元素
8.3.14 <xsl:copy>与<xsl:copy-of>元素
8.4在XSLT中复用代码
8.4.1 <xsl:include>元素
8.4.2 <xsl:import>元素
8.4.3 <xsl:template>Mode属性
8.5理解内置模板与内置规则
8.6使用XSLT 2.0
8.6.1理解XSLT 2.0中的数据类型
8.6.2创建自定义函数
8.6.3创建多个输出文档
8.6.4使用collection()函数
8.6.5 XSLT 2.0分组
8.6.6 XSLT 2.0处理非XML输入
8.7 XSLT与XPATH 3.0:未来展望
8.8小结
第Ⅳ部分 数据库
第9章 XQuery
9.1 XQuery、XPath和XSLT
9.1.1 XQuery和XSLT
9.1.2 XQuery和XPath
9.2 XQuery实践
9.2.1独立XQuery应用
9.2.2 SQL语句
9.2.3 Java或其他编程语言调用
9.2.4原生XML服务
9.2.5无处不在的XQuery
9.3 XQuery基础模块
9.3.1 FLWOR表达式、模块以及函数
9.3.2无默认上下文项的XQuery表达式
9.4查询表达式详解
9.4.1版本声明
9.4.2序体
9.4.3查询体
9.5一些可选的XQuery特性
9.5.1 XQuery和XPath全文索引
9.5.2 XQuery更新功能
9.5.3 XQuery脚本扩展
9.6即将到来的XQuery 3.0
9.6.1 group和window
9.6.2 count子句
9.6.3 try和catch
9.6.4 switch表达式
9.6.5函数项和高阶函数
9.6.6 JSON特性
9.6.7 XQuery、关联数据和语义网
9.7小结
第10章 XML与数据库
10.1了解数据库为什么需要能处理XML
10.2分析数据库所需的XML功能
10.2.1检索文档
10.2.2在文档中检索数据
10.2.3更新XML文档
10.2.4以XML形式展示关系型数据
10.2.5以关系型数据的形式显示XML数据
10.3 XML与MySQL数据库
10.3.1安装MySQL
10.3.2在MySQL中添加信息
10.3.3 MySQL查询命令
10.3.4用MySQL更新XML数据
10.3.5在MySQL中使用XML
10.3.6 MySQL客户端对XML的支持
10.4 XML与SQL Server数据库
10.4.1安装SQL Server
10.4.2用XML显示关系型数据
10.4.3了解XML数据类型
10.4.4为xml数据类型创建索引
10.4.5 SQL Server的W3C XML Schema
10.4.6处理带名称空间的文档
10.5 XML与exist数据库
10.5.1下载并安装eXist
10.5.2交互操作eXist
10.6小结
第Ⅴ部分 程序设计
第11章 事件驱动程序设计
11.1理解顺序处理
11.2在顺序处理中使用SAX
11.2.1准备工作
11.2.2接收SAX事件
11.2.3处理无效内容
11.2.4 DTDHandler接口
11.2.5 EntityResolver接口
11.2.6了解特性与属性
11.3 XMLREADER
11.3.1 XmlReaderSettings
11.3.2管理外部资源
11.4小结
第12章 LINQ to XML
12.1 LINQ的概念
12.1.1需要LINQ to XML的原因
12.1.2使用LINQ to XML
12.2创建XML文档
12.2.1创建带名称空间的文档
12.2.2创建带有前缀名的名称空间的文档
12.3从XML文档中提取数据
12.4修改文档
12.4.1添加内容
12.4.2删除文档中的内容
12.4.3更新和替换文档中的内容
12.5转换文档
12.6 VB.NET的XML属性
12.6.1 VB.NET的XML文本
12.6.2 VB.NET的坐标轴属性
12.6.3在VB.NET中管理名称空间
12.7小结
第Ⅵ部分 通信
第13章 RSS、Atom和内容聚合
13.1聚合
13.1.1 XML聚合
13.1.2聚合系统
13.1.3格式剖析
13.2使用新闻feed
13.2.1新闻阅读器
13.2.2数据质量
13.3一个简单的聚合器
13.3.1 feed模型
13.3.2程序流程
13.3.3实现程序
13.3.4用XSLT转换 RSS格式
13.4几个有用的网站地址
13.5小结
第14章 Web服务
14.1什么是远程过程调用
14.2 RPC协议
14.2.1 DCOM
14.2.2 CORBA与IIOP
14.2.3 Java RMI
14.3新的RPC协议——Web服务
14.3.1同源策略
14.3.2理解XML-RPC
14.3.2选择网络传输
14.4理解REST服务
14.5 Web服务的堆栈技术
14.5.1 SOAP
14.5.2 WSDL
14.5.3 UDDI
14.5.4相关规范
14.6小结
第15章 SOAP和WSDL
15.1 SOAP基础
15.2 RPC新协议——SOA
15.2.1 SOAP与REST对比
15.2.2基本的SOAP消息
15.2.3比较复杂的SOAP交互
15.3定义Web服务语言——WSDL
15.4.1 <definitions>
15.4.2 <types>
15.4.3 <messages>
15.4.4 <portTypes>
15.4.5 <binding>
15.4.6 <soap:body>
15.4.7 <service>
15.4.8其他绑定方式
15.4小结
第16章 AJAX
16.1 AJAX概述
16.1.1 AJAX提供反馈
16.1.2使用AJAX加载未完成数据
16.1.3 AJAX执行异步操作
16.2 JavaScript简介
16.2.1 Web浏览器控制台
16.2.2值、表达式与变量
16.2.3控制流语句
16.2.4 Properties、Objects、Functions与Classes
16.3 XMLHttpRequest函数
16.4使用HTTP方法与AJAX
16.5可达性考虑
16.6 jQuery库
16.6.1学习jQuery
16.6.2领域专用语言(DSL)方法
16.6.3 jQuery插件和附加库
16.7 JSON与AJAX
16.7.1 JSON示例
16.7.2 JSON语法
16.7.3 JSON与jQuery
16.7.4 JSONP与CORS
16.8 Web服务器后端
16.8.1发送图像以及其他非文本数据
16.8.2性能
16.8.3服务器日志是朋友
16.9一个更复杂的例子
16.10小结
第Ⅶ部分 显示
第17章 XHTML和HTML 5
17.1 SGML的背景
17.1.1 HTML和SGML
17.1.2 XML和SGML
17.2开放式Web平台
17.3 XHTML简介
17.3.1 XHTML的<html>元素
17.3.2 XHTML的<head>元素
17.3.3 XHTML的<body>元素
17.3.4更多有关高级HTML的主题
17.4 XHTML和HTML:问题以及解决方法
17.5级联样式表(CASCADING STYLE SHEETS,CSS)
17.5.1 CSS等级和版本
17.5.2 CSS一览
17.5.3 CSS选择器
17.5.4 CSS属性
17.5.5 CSS特殊规则
17.5.6 CSS和XML
17.5.7分离样式和标记:低调的CSS
17.6 Unobtrusive JavaScript技术
17.7 HTML 5
17.7.1 HTML 5的优点
17.7.2 HTML 5的注意事项
17.7.3 HTML 5中的新元素
17.8小结
第18章 可伸缩矢量图形
18.1可伸缩矢量图形和位图
18.1.1过程式图形
18.1.2声明式图形
18.1.3位图图像
18.1.4矢量图像
18.1.5 SVG图像
18.2 SVG图像模型
18.3 SVG和CSS
18.4 SVG工具
18.5 SVG基本内置图形
18.5.1矩形
18.5.2圆形
18.5.3椭圆形
18.5.4直线
18.5.5折线和多边形
18.5.6 SVG路径(SVG Path)
18.6 SVG转换和聚合
18.6.1转换
18.6.2聚合
18.7 SVG定义和元数据
18.7.1 SVG的<title>元素和<desc>元素
18.7.2 SVG的<metadata>元素
18.7.3 SVG的<defs>元素以及可重用内容
18.8视窗和坐标
18.9 SVG颜色和梯度
18.10在SVG中使用位图图像
18.11 SVG文本和字体
18.12实现SVG动画的4种方法
18.12.1同步多媒体集成语言(SMIL)
18.12.2脚本动画
18.12.3 CSS动画
18.12.4外部库文件
18.13 SVG和HTML 5
18.14 SVG和Web应用
18.15使用XQUERY或XSLT生成SVG图像
18.16资源
18.17小结
第Ⅷ部分 案例分析
第19章 案例分析:XML在出版业中的应用
19.1背景
19.2产品介绍:目前的工作流程
19.3引入一个全新的基于Web的工作流程
19.3.1协商
19.3.2编写项目文档
19.3.3原型设计
19.4创建新流程
19.4.1富有挑战性的条件
19.4.2新的工作流
19.4.3记录转变过程和用到的技术
19.4.4成本收益分析
19.4.5部署
19.5一些技术要点
19.5.1 XQuery和模块
19.5.2 XInclude
19.5.3方程和MathML
19.5.4 XProc:一种XML管道语言
19.5.5 XForms、REST和XQuery
19.5.6使用XSL-FO将对象格式化为PDF
19.5.7文档类XML标签
19.5.8人文科学类标签:TEI
19.6 Hoy Books的网站
19.7小结
附录A 习题参考答案
附录B XPath函数
附录C XML Schema数据类型