第一篇 XML與Java
第1章 強大的Java 3
1.1 Java的背景介紹 3
1.2 Java的技術特征 4
1.2.1 語言特點 4
1.2.2 Java的面向對象介紹 5
1.2.3 Java和C++比較 7
1.3 Java程序的運行與開發(fā)環(huán)境 11
1.3.1 Java運行環(huán)境 11
1.3.2 Java開發(fā)環(huán)境 12
1.4 Java程序設計基礎 12
1.4.1 語言基礎 12
1.4.2 類. 接口與包 13
1.4.3 字符串與數(shù)組 17
1.5 Java的技術應用 17
1.5.1 Java應用程序 17
1.5.2 Java小應用程序 17
1.5.3 JDBC 18
1.5.4 Servlet和JSP 21
1.5.5 JavaBeans 23
1.5.6 EJB 23
第2章 互聯(lián)網時代的數(shù)據標準——XML語言 27
2.1 XML介紹 27
2.1.1 XML的發(fā)展之路 28
2.1.2 XML的特點 33
2.1.3 XML的應用簡介 38
2.2 XML語法 40
2.2.1 語法基礎 40
2.2.2 XML文檔的構成 46
2.2.3 XML文檔的元素 49
2.2.4 XML文檔的屬性 53
2.2.5 XML文檔的實體 58
2.3 XML的命名空間 59
2.3.1 命名空間的表示法 59
2.3.2 命名空間的范疇 60
2.4 文檔類型定義 60
2.4.1 文檔類型定義介紹 61
2.4.2 DTD的設計 62
2.4.3 正式的DTD結構 65
2.4.4 DTD的缺點 68
2.5 XSL介紹 69
2.5.1 XSL簡介 69
2.5.2 XSL文檔 70
2.5.3 XSL樣式模板 71
2.5.4 編寫XSL文檔 76
第3章 XML編程接口 79
3.1 DOM(文檔對象模型) 79
3.1.1 DOM的介紹 79
3.1.2 DOM的層次模型 79
3.1.3 DOM的使用 81
3.2 SAX(XML簡單應用程序接口) 120
3.2.1 什么是SAX? 120
3.2.2 Java的SAX API 121
3.2.3 SAX的事件模型 121
3.2.4 SAX的使用 123
第4章 Java與XML 139
4.1 JAXP編程 139
4.1.1 JAXP的介紹 139
4.1.2 使用JAXP 140
4.2 JDOM編程 153
4.2.1 理解JDOM 153
4.2.2 JDOM應用 154
第5章 XSLT和XPATH 159
5.1 XSLT概述 159
5.1.1 XSLT的設計目的 159
5.1.2 為什么需要XSLT 159
5.1.3 XSLT的特點 160
5.1.4 XSLT的機理 160
5.2 樣式表結構 161
5.3 內容模式 164
5.3.1 根結點子元素 164
5.3.2 剝去空白域(Whitespace Stripping) 164
5.4 模板規(guī)則 164
5.4.1 模式 164
5.4.2 定義模板規(guī)則 165
5.4.3 應用模板規(guī)則 166
5.4.4 調用命名的模板 166
5.5 產生結果樹 166
5.5.1 字面結果元素的產生 167
5.5.2 用xsl:element生成元素 167
5.5.3 xsl:attribute生成屬性 167
5.5.4 命名屬性集 168
5.5.5 產生文本 169
5.5.6 產生處理指令 169
5.5.7 產生注釋 170
5.5.8 復制 170
5.5.9 計算生成的文本 171
5.5.10 編號(numbering) 171
5.6 循環(huán) 171
5.7 條件處理 173
5.7.1 xsl:if條件處理 173
5.7.2 xsl:choose條件處理 173
5.8 排序 174
5.9 變量和參數(shù) 175
5.10 輸出 176
5.10.1 XML輸出方法 177
5.10.2 HTML輸出方法 177
5.10.3 文本輸出方法 177
5.11 其他細節(jié) 178
5.11.1 消息(Message) 178
5.11.2 擴展(Extension) 178
5.11.3 退步(Fallback) 179
5.12 XPath 179
第6章 Java XML Pack 181
6.1 Java XML Pack簡介 181
6.2 JAXM 181
6.2.1 核心 182
6.2.2 供應者管理工具 182
6.2.3 使用JAXM 182
6.3 JAXB 185
6.4 JAX-RPC 186
6.5 JAXR 186
第二篇 Web服務篇
第7章 Web服務概覽 189
7.1 什么是Web服務 189
7.1.1 Web服務架構 189
7.1.2 Web服務的特征 190
7.1.3 Web服務的分類 190
7.1.4 Web服務堆棧 191
7.2 Web服務帶來了什么 192
7.3 Web服務體系結構對比 193
7.3.1 Microsoft.NET 開發(fā)框架 193
7.3.2 Sun ONE開發(fā)框架 196
7.3.3 Sun ONE與.NET的戰(zhàn)略對比 199
第8章 簡單對象訪問協(xié)議 203
8.1 SOAP初步 203
8.1.1 HTTP+XML+RPC+Serialization 204
8.1.2 XML-RPC 204
8.1.3 WDDX 205
8.1.4 SOAP:XML-RPC+WDDX 206
8.2 SOAP協(xié)議 207
8.2.1 SOAP術語 208
8.2.2 SOAP消息 209
8.2.3 SOAP編碼 211
8.2.4 SOAP RPC表示 213
8.2.5 綁定到HTTP的SOAP 214
8.3 SOAP和現(xiàn)有技術的比較 215
8.3.1 CORBA 215
8.3.2 COM/DCOM 215
8.3.3 SOAP與CORBA. DCOM/COM的比較 216
第9章 應用Apache Soap進行編程 217
9.1 Apache Soap的獲取 217
9.2 Apache Soap的安裝. 配置和運行 218
9.2.1 Servlet容器(Tomcat 3.2.3)的安裝 218
9.2.2 Java Mail API和JavaBeans Activation Framework的安裝 221
9.2.3 XML Parser(Apache Xerces)的安裝 222
9.2.4 Apache SOAP的安裝 222
9.2.5 Apache Soap的運行 224
9.3 一個簡單的SOAP程序 224
9.3.1 SOAP服務的編程. 224
9.3.2 SOAP服務的發(fā)布 225
9.3.3 客戶端程序 226
9.3.4 例子的運行 227
第10章 深入Apache Soap編程 229
10.1 基礎知識 229
10.1.1 SOAP服務 229
10.1.2 SOAP服務的發(fā)布 230
10.1.3 調用SOAP服務 246
10.1.4 Http Tunnel Tools 248
10.2 SOAP RPC編程 252
10.2.1 SOAP服務 252
10.2.2 SOAP HTTP Client 254
10.2.3 SOAP SMTP Client 256
10.3 SOAP Message編程 264
10.3.1 Message Service 265
10.3.2 SOAP Message Client 266
10.3.3 帶有附件的消息 272
10.4 Script服務 278
10.5 EJB服務 284
10.6 COM服務 296
10.6.1 編寫COM組件 297
10.6.2 客戶端程序 299
10.7 使用復雜的數(shù)據類型 299
10.7.1 在服務器上注冊新類型 300
10.7.2 在客戶端注冊新類型 308
10.7.3 使用復雜數(shù)據類型的例子 308
10.7.4 構造自己的(反)序列化器 323
10.8 定制SOAP消息傳輸層 330
10.8.1 使用HTTP代理 330
10.8.2 使用HTTPS 335
10.8.3 使用Transport Hooks 336
10.9 維護Session信息 339
10.10 在RPC中使用MIME類型 345
10.11 構造自己的Provider 352
10.12 Apache SOAP服務器配置 362
10.12.1 配置管理器的作用 362
10.12.2 配置管理器類的實現(xiàn) 362
10.12.3 在SOAP服務器上使用自定義的配置管理器 365
10.13 Axis簡介 366
10.13.1 服務的發(fā)布 366
10.13.2 服務的調用 367
第11章 SOAP互操作 369
11.1 傳輸問題 369
11.2 XML的問題 370
11.3 SOAP自身的問題 370
第12章 Web服務描述語言 389
12.1 WSDL語法結構 389
12.2 WSDL工具 393
12.2.1 WSDL Generator Tool 394
12.2.2 Service Proxy Generator Tool 394
12.2.3 Service Implementation Template Generator Tool 394
第13章 通用描述. 發(fā)現(xiàn)和集成 395
13.1 UDDI商業(yè)注冊 395
13.2 UDDI數(shù)據模型 395
13.2.1 商業(yè)實體信息 396
13.2.2 商業(yè)服務信息 397
13.2.3 綁定模板信息 397
13.2.4 技術規(guī)范信息 398
13.3 UDDI程序員API 399
13.4 UDDI4J 401
第14章 Web服務流語言 411
附錄A SOAP V1.1協(xié)議規(guī)范 417
A.1 簡介 417
A.1.1 設計目標 417
A.1.2 符號約定 417
A.1.3 SOAP消息舉例 418
A.2 SOAP消息交換模型 419
A.3 與XML的關系 419
A.4 SOAP封裝 420
A.4.1 SOAP encodingStyle屬性 421
A.4.2 封裝版本模型 421
A.4.3 SOAP頭 421
A.4.4 SOAP體 422
A.4.5 SOAP頭和體的關系 423
A.4.6 SOAP錯誤 423
A.4.7 SOAP錯誤代碼 424
A.5 SOAP編碼 424
A.5.1 XML中的編碼類型規(guī)則 425
A.5.2 簡單類型 427
A.5.3 多態(tài)accessor 429
A.5.4 Compound types復合類型 429
A.5.5 默認值 437
A.5.6 SOAP root屬性 437
A.6 在HTTP中使用SOAP 438
A.6.1 SOAP HTTP請求 438
A.6.2 HTTP頭中SOAPAction域 438
A.6.3 SOAP HTTP應答 439
A.6.4 HTTP擴展框架 439
A.6.5 SOAP HTTP舉例 439
A.7 在RPC中使用SOAP 440
A.7.1 RPC和SOAP體 440
A.7.2 RPC和SOAP頭 441
A.8 安全性考慮 441
A.9 SOAP封裝舉例 441
A.9.1 請求編碼舉例 441
A.9.2 應答編碼舉例 442
A.10 參考文獻 444
附錄B Web服務描述語言(WSDL)1.0 445
B.1 簡介 445
B.1.1 WSDL文檔示例 446
B.1.2 標記規(guī)則 447
B.2 服務定義 448
B.2.1 WSDL文檔結構 448
B.2.2 類型 452
B.2.3 消息 453
B.2.4 端口類型 455
B.2.5 綁定 457
B.2.6 端口 458
B.2.7 服務 458
B.3 SOAP綁定 459
B.3.1 SOAP示例 459
B.3.2 SOAP綁定如何擴展 WSDL 461
B.4 HTTP GET和POST綁定 465
B.4.1 HTTP GET/POST示例 465
B.4.2 HTTP GET/POST綁定如何擴展WSDL 467
B.5 MIME綁定 468
B.5.1 MIME綁定示例 469
B.5.2 MIME綁定如何擴展WSDL 470
B.6 參考資料 472
B.6.1 有關URI的說明 472
B.6.2 WSDL示例的線上格式 473
B.6.3 擴展性元素的位置 473
B.6.4 架構 474
附錄C UDDI技術白皮書 481
C.1 簡介 481
C.1.1 概覽 481
C.1.2 UDDI的商業(yè)注冊與UDDI商業(yè)注冊中心 481
C.1.3 使用UDDI 482
C.1.4 背景 482
C.1.5 UDDI——技術發(fā)現(xiàn)層 483
C.1.6 下一步 484
C.1.7 商業(yè)發(fā)現(xiàn)與UDDI 484
C.1.8 進一步的工作 484
C.2 技術概述 485
C.2.1 四種信息類型 485
C.2.2 商業(yè)實體信息:businessEntity元素 485
C.2.3 服務信息:businessService元素和bindingTemplate元素 486
C.2.4 規(guī)范描述的指針和技術標識 486
C.2.5 程序員API 487
C.2.6 構建于SOAP之上 487
C.2.7 查詢API 488
C.2.8 UDDI調用模型 488
C.2.9 遠程Web服務調用失敗后的恢復 488
C.2.10 發(fā)布API 489
C.2.11 安全:識別與授權 489
C.3 其他信息 490
C.4 UDDI信息模型 490
C.5 資源 491
附錄D UDDI執(zhí)行白皮書 493
D.1 新的國際貿易環(huán)境 493
D.2 新的挑戰(zhàn) 493
D.3 當前的解決方案 494
D.4 新的解決方案 494
D.5 UDDI計劃 495
D.6 前景 495
D.7 總結 496