资源名称:XML入门经典(第5版)

内容简介:

《XML入门经典(第5版)》的主要内容如下:介绍XML的目标以及构建它的规则;探索不同的技术以协助完成对XML的正确格式的验证;展示如何使用XQuery创建新的XML文档并查询已有数据;解释如何使用DOM、XPath和LINQ to XML提取数据;验证特定用于处理大文档的编程技术;详细描述如何展示不同系统使用的数据;演示一个用于出版业的实际的XML pipeline等。

作者简介:

Joe Fawcett是卡普兰金融学院的软件开发主管,他是微软最早的xml的mvp之一。

liamr.e.quin是w3cxml活动领导者,xmlquery工作组以及xsl工作组的xsl-fo分组的联系人。dannyayers在talis从事由他们主办的语义网络平台的应用开发工作。

资源目录:

第Ⅰ部分 XML介绍

第1章 什么是XML 3

1.1 初识XML:数据描述和标记语言 3

1.1.1 二进制文件 4

1.1.2 文本文件 4

1.1.3 标记语言简史 5

1.2 XML的诞生 5

1.3 XML的优点 8

1.3.1 XML规则 8

1.3.2 数据的分层表示形式 9

1.3.3 通用性 10

1.4 XML的实际应用 11

1.4.1 数据和文档 11

1.4.2 XML场景 12

1.4.3 XML技术 13

1.5 小结 19

第2章 良构的XML 21

2.1 良构的定义 21

2.2 在文本编辑器中创建XML 22

2.2.1 禁止的字符 22

2.2.2 XML序言 22

2.2.3 创建元素 24

2.2.4 属性 27

2.2.5 元素与属性内容 28

2.2.6 处理指令 32

2.2.7 CDATA节 32

2.3 高级XML解析 34

2.3.1 XMl等价性 34

2.3.2 空白处理 35

2.3.3 错误处理 36

2.4 XML信息集 39

2.4.1 文档信息项 39

2.4.2 元素信息项 39

2.4.3 属性信息项 40

2.4.4 处理指令信息项 40

2.4.5 字符信息项 40

2.4.6 注释信息项 40

2.4.7 名称空间信息项 40

2.4.8 文档类型声明信息项 40

2.4.9 未扩展实体引用信息项 41

2.4.10 未解析实体信息项 41

2.4.11 符号信息项 41

2.5 小结 41

第3章 XML名称空间 43

3.1 名称空间的定义 43

3.2 需要名称空间的原因 44

3.3 选择名称空间的方法 45

3.3.1 URL、URI和URN 46

3.3.2 创建第一个名称空间 46

3.4 声明名称空间的方法 47

3.4.1 名称空间的作用域 50

3.4.2 声明多个名称空间 50

3.4.3 修改名称空间定义 52

3.5 名称空间的实际应用 55

3.5.1 XML Schema 55

3.5.2 多名称空间文档 55

3.6 使用名称空间的时机 59

3.6.1 何时需要使用名称空间 59

3.6.2 何时不需要使用名称空间 60

3.6.3 版本控制和名称空间 60

3.7 常见的名称空间 61

3.7.1 XML名称空间 61

3.7.2 XMLNS名称空间 62

3.7.3 XML Schema名称空间 62

3.7.4 XSLT名称空间 62

3.7.5 SOAP名称空间 63

3.7.6 WSDL名称空间 63

3.7.7 Atom名称空间 63

3.7.8 MathML名称空间 63

3.7.9 Docbook名称空间 64

3.8 小结 64

第Ⅱ部分 验证

第4章 文档类型定义 69

4.1 文档类型定义的概念 69

4.1.1 使用DTD 70

4.1.2 使用jEdit 70

4.1.3 详述DTD 73

4.1.4 DTD共享 76

4.2 DTD剖析 77

4.2.1 元素声明 77

4.2.2 属性声明 85

4.2.3 实体声明 90

4.3 DTD的局限性 94

4.4 小结 94

第5章 XML Schema 97

5.1 XML Schema的优点 98

5.1.1 XML Schema使用XML语法 98

5.1.2 XML Schema支持名称空间 98

5.1.3 XML Schema的数据类型 98

5.1.4 XML Schema的内容模型 99

5.1.5 XML Schema规范 99

5.2 XML Schema实践 99

5.3 XML Schema的定义 103

5.3.1 (schema)声明 103

5.3.2 (element)声明 107

5.3.3 混合内容 115

5.3.4 (group)声明 115

5.3.5 (attribute)声明 117

5.3.6 通讯录的XML Schema 117

5.3.7 数据类型 123

5.3.8 (simpleType)声明 129

5.4 创建一个来自多个文档的架构 133

5.4.1 (import)声明 134

5.4.2 (include)声明 137

5.5 XML Schema的开发文档 139

5.6 XML Schema 1.1 141

5.6.1 宽松的规则 141

5.6.2 (assert) 142

5.7 小结 143

第6章 RELAX NG与Schematron 145

6.1 为什么需要更多的XML验证方法 146

6.2 设置环境 146

6.3 使用RELAX NG 147

6.3.1 理解RELAX NG基础 147

6.3.2 理解RELAX NG紧凑语法 152

6.3.3 两种RELAX NG格式的转换 154

6.3.4 约束内容 155

6.3.5 在RELAX NG 架构中复用代码 157

6.4 使用Schematron 161

6.4.1 理解Schematron基础 161

6.4.2 选择Schematron版本 162

6.4.3 理解基本过程 162

6.4.4 编写Schematron基本规则 162

6.4.5 创建Schematron文档 164

6.4.6 向消息添加更多信息 165

6.4.7 Schematron约束取值 167

6.4.8 Schematron处理协约束 169

6.4.9 在XML Schema中使用

Schematron 170

6.5 小结 173

第Ⅲ部分 处理

第7章 从XML中提取数据 177

7.1 文档模型:XML的内存表示 177

7.1.1 初识模型:DOM、XDM与PSVI 177

7.1.2 一个样例DOM树 178

7.1.3 DOM节点类型 179

7.1.4 DOM节点列表 180

7.1.5 DOM的限制 180

7.2 XPath语言 181

7.2.1 XPath基础 181

7.2.2 XPath谓词:完整的故事 183

7.2.3 XPath步与轴 185

7.2.4 XPath表达式 186

7.2.5 XPath表达式中的变量 189

7.2.6 XPath 2中的新表达式 190

7.2.7 XPath函数 194

7.2.8 XPath集合运算 196

7.2.9 XPath与名称空间 196

7.3 小结 198

第8章 XSLT 199

8.1 XSLT的用途 200

8.1.1 XSLT作为声明性语言 200

8.1.2 XSLT作为功能性语言 201

8.2 建立XSLT开发环境 202

8.2.1 设置.NET版本的SAXON环境 202

8.2.2 设置Java版本的Saxon环境 203

8.3 基本的XSLT元素 204

8.3.1 (xsl:stylesheet)元素 205

8.3.2 (xsl:template)元素 206

8.3.3 (xsl:apply-templates)元素 209

8.3.4 (xsl:value-of)元素 209

8.3.5 (xsl:for-each)元素 211

8.3.6 推处理与拉处理 211

8.3.7 XPath在XSLT中的作用 211

8.3.8 使用命名模板 213

8.3.9 (xsl:call-template)元素 216

8.3.10 XSLT中document()函数 217

8.3.11 条件逻辑 222

8.3.12 (xsl:param)元素 226

8.3.13 (xsl:sort)元素 227

8.3.14 (xsl:copy)与(xsl:copy-of)元素 229

8.4 在XSLT中复用代码 231

8.4.1 (xsl:include)元素 231

8.4.2 (xsl:import)元素 234

8.4.3 (xsl:template)Mode属性 234

8.5 理解内置模板与内置规则 237

8.6 使用XSLT 2.0 238

8.6.1 理解XSLT 2.0中的数据类型 239

8.6.2 创建自定义函数 239

8.6.3 创建多个输出文档 243

8.6.4 使用collection()函数 244

8.6.5 XSLT 2.0分组 245

8.6.6 XSLT 2.0处理非XML输入 248

8.7 XSLT与XPATH 3.0:未来展望 253

8.8 小结 254

第Ⅳ部分 数据库

第9章 XQuery 257

9.1 XQuery、XPath和XSLT 257

9.1.1 XQuery和XSLT 258

9.1.2 XQuery和XPath 258

9.2 XQuery实践 259

9.2.1 独立XQuery应用 259

9.2.2 SQL语句 259

9.2.3 Java或其他编程语言调用 259

9.2.4 原生XML服务 259

9.2.5 无处不在的XQuery 259

9.3 XQuery基础模块 262

9.3.1 FLWOR表达式、模块以及函数 262

9.3.2 无默认上下文项的XQuery表达式 266

9.4 查询表达式详解 266

9.4.1 版本声明 267

9.4.2 序体 267

9.4.3 查询体 272

9.5 一些可选的XQuery特性 278

9.5.1 XQuery和XPath全文索引 278

9.5.2 XQuery更新功能 279

9.5.3 XQuery脚本扩展 279

9.6 即将到来的XQuery 3.0 279

9.6.1 group和window 280

9.6.2 count子句 281

9.6.3 try和catch 281

9.6.4 switch表达式 282

9.6.5 函数项和高阶函数 283

9.6.6 JSON特性 284

9.6.7 XQuery、关联数据和语义网 284

9.7 小结 284

第10章 XML与数据库 287

10.1 了解数据库为什么需要能处理XML 287

10.2 分析数据库所需的XML功能 288

10.2.1 检索文档 289

10.2.2 在文档中检索数据 289

10.2.3 更新XML文档 289

10.2.4 以XML形式展示关系型数据 289

10.2.5 以关系型数据的形式显示XML数据 290

10.3 XML与MySQL数据库 290

10.3.1 安装MySQL 290

10.3.2 在MySQL中添加信息 291

10.3.3 MySQL查询命令 293

10.3.4 用MySQL更新XML数据 297

10.3.5 在MySQL中使用XML 298

10.3.6 MySQL客户端对XML的支持 298

10.4 XML与SQL Server数据库 299

10.4.1 安装SQL Server 299

10.4.2 用XML显示关系型数据 300

10.4.3 了解XML数据类型 313

10.4.4 为xml数据类型创建索引 316

10.4.5 SQL Server的W3C XML Schema 323

10.4.6 处理带名称空间的文档 324

10.5 XML与exist数据库 325

10.5.1 下载并安装eXist 325

10.5.2 交互操作eXist 327

10.6 小结 335

第Ⅴ部分 程序设计

第11章 事件驱动程序设计 339

11.1 理解顺序处理 339

11.2 在顺序处理中使用SAX 340

11.2.1 准备工作 341

11.2.2 接收SAX事件 341

11.2.3 处理无效内容 352

11.2.4 DTDHandler接口 361

11.2.5 EntityResolver接口 361

11.2.6 了解特性与属性 362

11.3 XMLREADER 366

11.3.1 XmlReaderSettings 372

11.3.2 管理外部资源 376

11.4 小结 377

第12章 LINQ to XML 379

12.1 LINQ的概念 379

12.1.1 需要LINQ to XML的原因 381

12.1.2 使用LINQ to XML 382

12.2 创建XML文档 384

12.2.1 创建带名称空间的文档 386

12.2.2 创建带有前缀名的名称空间的文档 387

12.3 从XML文档中提取数据 387

12.4 修改文档 394

12.4.1 添加内容 394

12.4.2 删除文档中的内容 395

12.4.3 更新和替换文档中的内容 396

12.5 转换文档 397

12.6 VB.NET的XML属性 399

12.6.1 VB.NET的XML文本 399

12.6.2 VB.NET的坐标轴属性 402

12.6.3 在VB.NET中管理名称空间 404

12.7 小结 404

第Ⅵ部分 通信

第13章 RSS、Atom和内容聚合 409

13.1 聚合 409

13.1.1 XML聚合 410

13.1.2 聚合系统 412

13.1.3 格式剖析 414

13.2 使用新闻feed 422

13.2.1 新闻阅读器 423

13.2.2 数据质量 423

13.3 一个简单的聚合器 423

13.3.1 feed模型 424

13.3.2 程序流程 426

13.3.3 实现程序 426

13.3.4 用XSLT转换RSS格式 443

13.4 几个有用的网站地址 452

13.5 小结 453

第14章 Web服务 455

14.1 什么是远程过程调用 455

14.2 RPC协议 456

14.2.1 DCOM 457

14.2.2 CORBA与IIOP 458

14.2.3 Java RMI 458

14.3 新的RPC协议——Web服务 459

14.3.1 同源策略 460

14.3.2 理解XML-RPC 461

14.3.2 选择网络传输 463

14.4 理解REST服务 473

14.5 Web服务的堆栈技术 477

14.5.1 SOAP 477

14.5.2 WSDL 478

14.5.3 UDDI 479

14.5.4 相关规范 479

14.6 小结 481

第15章 SOAP和WSDL 483

15.1 SOAP基础 483

15.2 RPC新协议——SOAP 484

15.2.1 SOAP与REST对比 488

15.2.2 基本的SOAP消息 488

15.2.3 比较复杂的SOAP交互 496

15.3 定义Web服务语言——WSDL 508

15.4.1 (definitions) 509

15.4.2 (types) 509

15.4.3 (messages) 509

15.4.4 (portTypes) 510

15.4.5 (binding) 510

15.4.6 (soap:body) 512

15.4.7 (service) 513

15.4.8 其他绑定方式 516

15.4 小结 519

第16章 AJAX 521

16.1 AJAX概述 521

16.1.1 AJAX提供反馈 521

16.1.2 使用AJAX加载未完成数据 522

16.1.3 AJAX执行异步操作 522

16.2 Javascript简介 523

16.2.1 Web浏览器控制台 523

16.2.2 值、表达式与变量 524

16.2.3 控制流语句 526

16.2.4 Properties、Objects、Functions 与 Classes 527

16.3 XMLHttpRequest函数 528

16.4 使用HTTP方法与AJAX 532

16.5 可达性考虑 533

16.6 jQuery库 534

16.6.1 学习jQuery 535

16.6.2 领域专用语言(DSL)方法 535

16.6.3 jQuery插件和附加库 535

16.7 JSON与AJAX 538

16.7.1 JSON示例 538

16.7.2 JSON语法 539

16.7.3 JSON与jQuery 540

16.7.4 JSONP与CORS 540

16.8 Web服务器后端 540

16.8.1 发送图像以及其他非文本数据 541

16.8.2 性能 541

16.8.3 服务器日志是朋友 541

16.9 一个更复杂的例子 542

16.10 小结 546

第Ⅶ部分 显示

第17章 XHTML和HTML 5 551

17.1 SGML的背景 552

17.1.1 HTML和SGML 552

17.1.2 XML和SGML 552

17.2 开放式Web平台 553

17.3 XHTML简介 554

17.3.1 XHTML的(html)元素 554

17.3.2 XHTML的(head)元素 555

17.3.3 XHTML的(body)元素 557

17.3.4 更多有关高级HTML的主题 567

17.4 XHTML和HTML:问题以及解决方法 568

17.5 级联样式表(CASCADING STYLE SHEETS,CSS) 569

17.5.1 CSS等级和版本 569

17.5.2 CSS一览 570

17.5.3 CSS选择器 572

17.5.4 CSS属性 574

17.5.5 CSS特殊规则 578

17.5.6 CSS和XML 579

17.5.7 分离样式和标记:低调的CSS 579

17.6 Unobtrusive Javascript技术 580

17.7 HTML 5 580

17.7.1 HTML 5的优点 580

17.7.2 HTML 5的注意事项 581

17.7.3 HTML 5中的新元素 581

17.8 小结 582

第18章 可伸缩矢量图形 585

18.1 可伸缩矢量图形和位图 585

18.1.1 过程式图形 585

18.1.2 声明式图形 586

18.1.3 位图图像 586

18.1.4 矢量图像 588

18.1.5 SVG图像 588

18.2 SVG图像模型 589

18.3 SVG和CSS 591

18.4 SVG工具 592

18.5 SVG基本内置图形 594

18.5.1 矩形 595

18.5.2 圆形 596

18.5.3 椭圆形 596

18.5.4 直线 597

18.5.5 折线和多边形 597

18.5.6 SVG路径(SVG Path) 598

18.6 SVG转换和聚合 601

18.6.1 转换 601

18.6.2 聚合 602

18.7 SVG定义和元数据 602

18.7.1 SVG的(title)元素和(desc)元素 602

18.7.2 SVG的(metadata)元素 603

18.7.3 SVG的(defs)元素以及可重用内容 604

18.8 视窗和坐标 604

18.9 SVG颜色和梯度 605

18.10 在SVG中使用位图图像 607

18.11 SVG文本和字体 608

18.12 实现SVG动画的4种方法 609

18.12.1 同步多媒体集成语言(SMIL) 609

18.12.2 脚本动画 610

18.12.3 CSS动画 611

18.12.4 外部库文件 611

18.13 SVG和HTML 5 611

18.14 SVG和Web应用 613

18.15 使用XQUERY或XSLT生成SVG图像 613

18.16 资源 614

18.17 小结 614

第Ⅷ部分 案例分析

第19章 案例分析:XML在出版业中的应用 617

19.1 背景 617

19.2 产品介绍:目前的工作流程 618

19.3 引入一个全新的基于Web的工作流程 618

19.3.1 协商 618

19.3.2 编写项目文档 619

19.3.3 原型设计 619

19.4 创建新流程 619

19.4.1 富有挑战性的条件 619

19.4.2 新的工作流 620

19.4.3 记录转变过程和用到的技术 620

19.4.4 成本收益分析 621

19.4.5 部署<span

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。