第Ⅰ部分 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 部署 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
· · · · · · (
收起)