《XML入门经典 第5版》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:(美)JOEFAWCETT(福思特),(美)LIAMR.E.QUIN(奎思),(美)DANNYAYERS(艾尔斯)著;刘云鹏,王超译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302342717
  • 页数:684 页
图书介绍:本书将引导读者学习了解XML这个强大的语言所需的一切知识,包括它是什么,它是如何工作的,伴随它的技术,以及如何应用它。你很快会学到如何操纵XML文件,将XML存储在数据库中,提取数据,利用Web服务,甚至将它用于网页和图像显示。通过案例研究的帮助,你还可以学习如何应用书中的信息,并提升自己的编程技能。

第Ⅰ部分 XML介绍 3

第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

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

第Ⅱ部分 验证 69

第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

第Ⅲ部分 处理 177

第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 XPath2中的新表达式 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-ot>元素 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

第Ⅳ部分 数据库 257

第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

第Ⅴ部分 程序设计 339

第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

第Ⅵ部分 通信 409

第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新协议——SOA 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

第Ⅶ部分 显示 551

第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

第Ⅷ部分 案例分析 617

第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部署 621

19.5一些技术要点 622

19.5.1 XQuery和模块 622

19.5.2 XInclude 622

19.5.3方程和MathML 623

19.5.4 XProc:一种XML管道语言 625

19.5.5 XForms、REST和XQuery 626

19.5.6使用XSL-FO将对象格式化为PDF 626

19.5.7文档类XML标签 628

19.5.8人文科学类标签:TEI 629

19.6 Hoy Books的网站 629

19.7小结 633

附录A 习题参考答案 635

附录B XPath函数 655

附录C XML Schema数据类型 673