第ⅰ部分 引言
第1章 什麼是xml 2
1.1 數據、文件和文本 2
1.1.1 二進製文件 2
1.1.2 文本文件 3
1.1.3 標記語言的簡史 4
1.2 什麼是xml 5
1.2.1 xml能給我們帶來什麼好處 7
1.2.2 html和xml——蘋果與鮮艷可口的蘋果 10
1.2.3 信息的層級結構 11
1.2.4 什麼是文檔類型 13
1.2.5 究竟什麼是文檔類型 13
1.3 xml標準的誕生 14
1.3.1 萬維網聯盟 14
1.3.2 xml的組成 14
1.4 xml的應用 15
1.4.1 減輕服務器負荷 15
1.4.2 web站點內容 16
1.4.3 分布式計算 16
1.4.4 電子商務 16
1.5 小結 17
1.6 習題 17
第2章 良構的xml文檔 18
2.1 解析xml文檔 18
2.2 標簽、文本和元素 19
2.3 屬性 31
2.4 注釋 36
2.5 空元素 39
2.6 xml聲明語句 40
2.6.1 version屬性 41
2.6.2 encoding屬性 41
2.6.3 standalone屬性 43
2.7 處理指令 45
2.8 非法的pcdata字符 48
2.8.1 轉義字符 48
2.8.2 cdata文本段 49
2.9 xml中的錯誤 51
2.10 小結 51
2.11 習題 52
第3章 xml名稱空間 53
3.1 為什麼需要名稱空間 53
3.1.1 使用前綴 54
3.1.2 為什麼xml不直接使用這些前綴 56
3.2 xml名稱空間的運行機製 57
3.2.1 默認的名稱空間 60
3.2.2 不同的符號就一定不同嗎 64
3.2.3 名稱空間和屬性 66
3.3 理解uri 69
3.3.1 url 69
3.3.2 urn 70
3.3.3 為什麼用url而不是urn錶示名稱空間 70
3.3.4 名稱空間uri的真實含義 71
3.3.5 rddl 71
3.4 什麼時候使用名稱空間 72
3.5 小結 72
3.6 習題 73
第ⅱ部分 驗 證
第4章 文檔類型定義 75
4.1 運行實例 75
4.1.1 準備工作 76
4.1.2 文檔類型聲明 79
4.2 詞匯共享 82
4.3 解剖一個dtd 83
4.3.1 元素聲明 83
4.3.2 屬性聲明 95
4.3.3 實體 104
4.4 開發dtd定義 113
4.5 dtd的局限性 113
4.5.1 dtd語法 114
4.5.2 xml名稱空間 114
4.5.3 缺少數據分類 114
4.5.4 受限的內容模型描述 114
4.6 小結 115
4.7 習題 115
第5章 xml schema 116
5.1 xml schema的優點 116
5.1.1 xml schema使用xml語法 117
5.1.2 xml schema支持名稱空間 117
5.1.3 xml schema的數據類型 117
5.1.4 xml schema的內容模型 117
5.2 我們還需要dtd嗎 118
5.3 xml schema 118
5.3.1 xml schema文檔 118
5.3.2 實例運行 119
5.3.3 (schema)聲明 122
5.3.4 (element)聲明 124
5.3.5 (complextype)聲明 132
5.3.6 (group)聲明 134
5.3.7 內容模型 135
5.3.8 (attribute)聲明 142
5.3.9 (attributegroup)聲明 148
5.3.10 用簡單內容和屬性創建元素 150
5.3.11 數據類型 151
5.3.12 (simpletype)聲明 156
5.4 創建一個來自多個文檔的模式 161
5.4.1 (import)聲明 162
5.4.2 (include)聲明 165
5.5 xml schema的開發文檔 167
5.5.1 注釋 167
5.5.2 來自其他名稱空間的屬性 168
5.5.3 注解 168
5.6 小結 170
5.7 習題 170
第6章 relax ng 171
6.1 xml與緊湊型語法 172
6.2 relax ng樣式 172
6.3 樣式和語法的組閤、重用 184
6.3.1 命名樣式 184
6.3.2 組閤命名的樣式定義 187
6.3.3 用include指令實現模式的模塊化 188
6.3.4 重定義插入的命名樣式 189
6.3.5 用notallowed屬性刪除樣式 189
6.3.6 擴展和限製 190
6.3.7 嵌套語法 191
6.4 relax ng的其他特性 192
6.4.1 名稱空間 192
6.4.2 名稱類 193
6.4.3 數據類型 196
6.4.4 錶樣式 199
6.4.5 注釋與分區 199
6.5 資源鏈接 200
6.6 小結 200
6.7 習題 200
第ⅲ部分 處 理 過 程
第7章 xpath 202
7.1 xml文檔的錶示方法 203
7.2 xml文檔的模型 203
7.3 可視化xpath 204
7.3.1 理解上下文 205
7.3.2 什麼是xpath的結點 206
7.3.3 xpath 1.0的類型 209
7.4 簡寫語法和詳寫語法 210
7.5 xpath 1.0軸 211
7.5.1 子軸 211
7.5.2 屬性軸 212
7.5.3 祖先軸 214
7.5.4 祖先自身軸 215
7.5.5 子孫軸 215
7.5.6 子孫自身軸 215
7.5.7 後繼軸 216
7.5.8 後繼兄弟軸 217
7.5.9 名稱空間軸 218
7.5.10 雙親軸 220
7.5.11 前驅結點 220
7.5.12 前驅兄弟軸 221
7.5.13 自身軸 222
7.6 xpath 1.0的函數 222
7.6.1 布爾函數 223
7.6.2 結點集函數 223
7.6.3 數值函數 223
7.6.4 字符串函數 224
7.7 謂詞 225
7.8 xpath錶達式的結構 226
7.9 xpath 2.0 228
7.9.1 改進的xpath 數據模型 228
7.9.2 w3c xml schema 數據類型 228
7.9.3 xpath 2.0新增的函數 228
7.9.4 xpath 2.0特性 228
7.10 小結 232
7.11 習題 232
第8章 xslt 233
8.1 什麼是xslt 233
8.1.1 重構xml 234
8.1.2 顯示xml文檔 234
8.2 xslt處理器的處理過程 234
8.3 實例運行 235
8.3.1 saxon xslt 處理器簡介 235
8.3.2 saxon xslt 處理器的安裝 235
8.4 過程性語言與描述性語言 237
8.4.1 過程性語言 237
8.4.2 描述性語言 237
8.5 xslt的基本元素 238
8.5.1 (xsl:stylesheet)元素 240
8.5.2 (xsl:template)元素 240
8.5.3 (xsl:apply-templates)元素.. 241
8.6 從源樹中讀取信息 242
8.6.1 (xsl:value-of)元素 242
8.6.2 (xsl:copy)元素 243
8.6.3 (xsl:copy-of)元素 246
8.7 用(xsl:output)元素控製輸齣 248
8.8 條件處理 249
8.8.1 (xsl:if)元素 249
8.8.2 (xsl:choose)元素 251
8.9 (xsl:for-each)元素 253
8.10 (xsl:sort)元素 254
8.11 xslt模式 256
8.12 xslt變量和參數 260
8.13 命名模闆和(xsl:call-template)元素 262
8.14 xslt函數 263
8.15 xslt 2.0 263
8.15.1 xslt 2.0的分組元素 264
8.15.2 非xml輸入源和字符串處理 266
8.15.3 多文檔輸齣 269
8.15.4 用戶自定義函數 271
8.15.5 xsl:value-of的變化 272
8.16 小結 273
8.17 習題 273
第ⅳ部分 數 據 庫
第9章 xml查詢語言——xquery 275
9.1 為什麼齣現xquery 275
9.1.1 曆史因素 275
9.1.2 技術因素 276
9.1.3 現狀 276
9.2 xquery 工具 278
9.2.1 saxon簡介 278
9.2.2 x-hive.com在綫幫助 280
9.2.3 x-hive數據庫 280
9.2.4 tamino數據庫 280
9.2.5 微軟的sql server 2005 280
9.2.6 oracle 281
9.3 xquery實例 281
9.3.1 輸入函數 281
9.3.2 檢索結點 282
9.3.3 元素構造器 285
9.3.4 xquery序體 288
9.3.5 xquery序體(續) 289
9.3.6 計算構造器 291
9.3.7 語法 292
9.4 xquery數據模型 293
9.4.1 與xpath 2.0和xslt 2.0共享的數據模型 293
9.4.2 結點類型 293
9.4.3 結點集序列 293
9.4.4 文檔順序 293
9.4.5 項與結點的比較 294
9.4.6 xquery的數據類型 294
9.4.7 xquery的軸 294
9.5 xquery的錶達式 294
9.6 xquery函數 300
9.6.1 concat()函數 300
9.6.2 count()函數 301
9.7 在xquery查詢命令裏使用參數 301
9.8 用戶自定義函數 302
9.9 展望 303
9.9.1 升級功能 303
9.9.2 全文搜索 304
9.10 小結 304
9.11 習題 304
第10章 xml與數據庫 305
10.1 對有效的xml數據存儲的需求 305
10.1.1 日益增大的xml數據量 306
10.1.2 比較基於xml的數據和關係數據 306
10.2 存儲xml的方法 307
10.2.1 把xml保存到文件係統裏 307
10.2.2 xml與傳統數據庫 309
10.2.3 原生xml數據庫 310
10.3 原生xml數據庫的使用 311
10.3.1 獲取並安裝exist 311
10.3.2 交互操作exist 312
10.4 xml在商業化的rdbms數據庫裏的作用 322
10.4.1 sql server 2000的xml功能 323
10.4.2 支持web服務 347
10.5 在開放源代碼rdbms中使用xml 348
10.5.1 安裝mysql 348
10.5.2 在mysql裏添加信息 348
10.5.3 mysql查詢命令 351
10.5.4 用mysql更新xml數據 355
10.5.5 在mysql裏使用xml 356
10.5.6 客戶端對xml的支持 356
10.6 選擇一個存儲xml的數據庫 357
10.7 未來展望 358
10.8 小結 358
10.9 習題 358
第ⅴ部分 程 序 設 計
第11章 文檔對象模型(dom) 360
11.1 xml dom的作用 360
11.2 w3c與文檔對象模型 363
11.3 顯示dom結點的兩種方法 364
11.4 運行實例的工具軟件 365
11.5 結點對象 372
11.5.1 node對象的屬性 373
11.5.2 node對象的方法 376
11.5.3 裝入xml文檔 376
11.5.4 文本結點的效果 381
11.5.5 namednodemap對象 384
11.5.6 nodelist對象 388
11.5.7 domexception對象 388
11.6 document接口 390
11.7 在infopath 2007中應用xml dom 392
11.8 小結 393
11.9 習題 393
第12章 xml簡單api 394
12.1 sax的本質和作用 394
12.1.1 sax簡史 395
12.1.2 從哪裏下載sax軟件 395
12.1.3 設置sax 396
12.2 接收sax事件 396
12.2.1 contenthandler接口 397
12.2.2 errorhandler接口 412
12.2.3 dtdhandler接口 416
12.2.4 entityresolver接口 417
12.2.5 特性與屬性 417
12.2.6 擴展接口 420
12.3 sax的利與弊 421
12.4 消費者、生産者和過濾器 421
12.5 其他語言 422
12.6 小結 422
12.7 習題 423
第ⅵ部分 通 信
第13章 rss、atom和內容聚閤 425
13.1 聚閤與元數據 425
13.1.1 聚閤係統 426
13.1.2 rss的起源 429
13.1.3 rss-dev和rss 1.0 433
13.1.4 userland與rss 2.0 434
13.1.5 atom格式 436
13.2 新聞feed 438
13.2.1 新聞閱讀器 439
13.2.2 數據質量 439
13.3 一個簡單的聚閤器 439
13.3.1 feed模型 439
13.3.2 程序流程 442
13.3.3 實現程序 442
13.3.4 用xslt轉換rss格式 457
13.4 幾個有用的網站地址 466
13.5 小結 467
13.6 習題 467
第14章 web服務 468
14.1 什麼是遠程過程調用 468
14.2 rpc協議 469
14.2.1 dcom 469
14.2.2 iiop 470
14.2.3 java rmi 471
14.3 新的rpc協議——web服務 471
14.3.1 xml-rpc 472
14.3.2 網絡傳輸 475
14.4 使用rest規範 489
14.5 web服務的堆棧技術 493
14.5.1 soap 493
14.5.2 wsdl 494
14.5.3 uddi 494
14.5.4 相關規範 495
14.6 小結 497
14.7 習題 497
第15章 soap和wsdl 498
15.1 soap基礎 498
15.2 在windows 2003、xp和2000操作係統裏運行實例 499
15.3 rpc新協議——soap 499
15.3.1 使用rest 502
15.3.2 基本的soap消息 503
15.3.3 比較復雜的soap交互 509
15.4 定義web服務語言——wsdl 519
15.4.1 (definitions) 520
15.4.2 (types) 520
15.4.3 (messages) 521
15.4.4 (porttypes) 522
15.4.5 (binding) 522
15.4.6 (soap:body) 524
15.4.7 (service) 524
15.4.8 其他綁定方式 527
15.5 小結 530
15.6 習題 530
第16章 ajax 531
16.1 異步更新的最初嘗試 531
16.1.1 微軟與mozilla之間的較量 532
16.1.2 跨瀏覽器解決方案 533
16.2 基本的發送步驟 534
16.3 服務器的傳輸和處理過程 537
16.3.1 json 537
16.3.2 信用卡驗證程序 538
16.3.3 autosuggest下拉框 543
16.4 服務器端的代理 563
16.5 小結 567
16.6 習題 568
第ⅶ部分 顯 示
第17章 樣式錶(css) 570
17.1 為什麼使用樣式錶 570
17.2 css簡介 571
17.2.1 css屬性 572
17.2.2 繼承 573
17.2.3 把樣式錶插入到xml文檔 577
17.2.4 選擇符 577
17.3 css用於xml文檔的布局 578
17.3.1 盒模型 579
17.3.2 樣式錶的定位 582
17.4 設計錶格數據 592
17.5 xml文檔中的鏈接 594
17.5.1 firefox對xlink的支持 594
17.5.2 用xhtml名稱空間建立超鏈接 597
17.6 在xml文檔裏插入圖像 597
17.7 通過樣式錶給文檔添加內容 598
17.8 屬性內容 600
17.8.1 屬性選擇符 601
17.8.2 在xml文檔裏使用屬性值 601
17.9 小結 603
17.10 習題 603
第18章 xhtml語言 605
18.1 樣式與內容相互獨立 606
18.2 xhtml 1.x 607
18.2.1 xhtml的文檔類型定義 607
18.2.2 設計xhtml文檔的基本變化 609
18.2.3 格式化xhtml文檔 618
18.2.4 嚴格型文檔處理速度更快 619
18.2.5 xhtml工具 620
18.2.6 驗證xhtml文檔 620
18.2.7 文檔驗證存在的陷阱 622
18.2.8 mime類型存在的陷阱 623
18.3 xhtml模塊化 625
18.3.1 模塊實現程序 627
18.3.2 xhtml 1.1 627
18.3.3 xhtml基本型 627
18.4 xhtml的未來趨勢 629
18.5 小結 630
18.6 習題 631
第19章 可縮放矢量圖形(svg) 632
19.1 什麼是svg 632
19.1.1 可縮放、矢量和圖形 633
19.1.2 啓動svg 633
19.1.3 svg工具軟件 634
19.2 svg初步 635
19.2.1 視圖和單位 638
19.2.2 畫傢模型 638
19.2.3 組 640
19.2.4 坐標變換 640
19.2.5 路徑命令 640
19.2.6 圖像 643
19.2.7 文本 644
19.2.8 注釋(comments)、說明(annotation)和元數據(metadata) 644
19.2.9 腳本設計 646
19.2.10 網站上的svg 647
19.3 tangram——一個實例程序 648
19.3.1 xhtml包裝器 648
19.3.2 svg圖形 649
19.3.3 tangram腳本程序 653
19.4 閱讀材料 660
19.5 小結 660
19.6 習題 661
第20章 xforms 662
20.1 xforms對html錶單的改進 662
20.2 xforms工具 663
20.3 一個演示性的xforms實例 667
20.4 xforms錶單控件 673
20.4.1 xforms:input元素 673
20.4.2 xforms:secret元素 674
20.4.3 xforms:textarea元素 674
20.4.4 xforms:output元素 674
20.4.5 xforms:upload元素 674
20.4.6 xforms:range元素 675
20.4.7 xforms:trigger元素 675
20.4.8 xforms:submit元素 675
20.4.9 xforms:select元素 676
20.4.10 xforms:select1元素 677
20.5 xforms實例的約束條件 682
20.5.1 xforms:bind元素 682
20.5.2 在xforms中使用w3c
xml schema 686
20.5.3 schema或bind元素:兩者擇其一 687
20.6 xforms事件 687
20.7 xforms動作模型 688
20.8 其他方法 689
20.8.1 微軟的infopath 689
20.8.2 adobe livecycle錶單設計器 690
20.8.3 html錶單 690
20.9 小結 691
20.10 習題 691
第ⅷ部分 案 例 研 究
第21章 案例研究——抵押貸款計算器 693
21.1 抵押貸款計算 693
21.2 準備工作 693
21.3 在綫貸款計算器 694
21.3.1 嵌入web計算服務 699
21.3.2 用svg改善貸款計算器的外觀 713
21.3.3 給主頁添加框架 715
21.4 小結 719
第22章 案例研究——基於ruby on rails架構的抵押貸款計算器 720
22.1 抵押計算器 720
22.2 準備工作 721
22.3 建立項目 721
22.4 建立一個在綫貸款計算器 722
22.4.1 開發web主頁 723
22.4.2 嵌入web計算服務 729
22.4.3 添加ajax的支持 737
22.4.4 用svg改進顯示效果 741
22.5 小結 748
附錄a 習題參考答案 749
附錄b xpath參考 794
附錄c xslt參考 806
附錄d xml文檔對象模型 830
附錄e xml schema元素與屬性參考手冊 859
附錄f xml schema數據類型 883
附錄g sax 2.0.2參考手冊 896
· · · · · · (
收起)