第Ⅰ部分 引言.
第1章 什么是XML
1.1 數(shù)據(jù)、文件和文本
1.1.1 二進制文件
1.1.2 文本文件
1.1.3 標記語言的簡史
1.2 什么是XML
1.2.1 XML能給我們帶來什么好處
1.2.2 HTML和XML——蘋果與鮮艷可口的蘋果
1.2.3 信息的層級結構
1.2.4 什么是文檔類型
1.2.5 究竟什么是文檔類型
1.3 XML標準的誕生
1.3.1 萬維網聯(lián)盟
1.3.2 XML的組成
1.4 XML的應用
1.4.1 減輕服務器負荷
1.4.2 Web站點內容
1.4.3 分布式計算
1.4.4 電子商務
1.5 小結
1.6 習題
第2章 良構的XML文檔
2.1 解析XML文檔
2.2 標簽、文本和元素
2.3 屬性
2.4 注釋
2.5 空元素
2.6 XML聲明語句
2.6.1 version屬性
2.6.2 encoding屬性
2.6.3 standalone屬性
2.7 處理指令
2.8 非法的PCDATA字符
2.8.1 轉義字符
2.8.2 CDATA文本段
2.9 XML中的錯誤
2.10 小結
2.11 習題
第3章 XML名稱空間
3.1 為什么需要名稱空間
3.1.1 使用前綴
3.1.2 為什么XML不直接使用這些前綴
3.2 XML名稱空間的運行機制
3.2.1 默認的名稱空間
3.2.2 不同的符號就一定不同嗎
3.2.3 名稱空間和屬性
3.3 理解URI
3.3.1 URL
3.3.2 URN
3.3.3 為什么用URL而不是URN表示名稱空間
3.3.4 名稱空間URI的真實含義
3.3.5 RDDL
3.4 什么時候使用名稱空間
3.5 小結
3.6 習題
第Ⅱ部分 驗 證
第4章 文檔類型定義
4.1 運行實例
4.1.1 準備工作
4.1.2 文檔類型聲明
4.2 詞匯共享
4.3 解剖一個DTD
4.3.1 元素聲明
4.3.2 屬性聲明
4.3.3 實體
4.4 開發(fā)DTD定義
4.5 DTD的局限性
4.5.1 DTD語法
4.5.2 XML名稱空間
4.5.3 缺少數(shù)據(jù)分類
4.5.4 受限的內容模型描述
4.6 小結
4.7 習題
第5章 XML Schema
5.1 XML Schema的優(yōu)點
5.1.1 XML Schema使用XML語法
5.1.2 XML Schema支持名稱空間
5.1.3 XML Schema的數(shù)據(jù)類型
5.1.4 XML Schema的內容模型
5.2 我們還需要DTD嗎
5.3 XML Schema
5.3.1 XML Schema文檔
5.3.2 實例運行
5.3.3 (schema)聲明
5.3.4 (element)聲明
5.3.5 (complexType)聲明
5.3.6 (group)聲明
5.3.7 內容模型
5.3.8 (attribute)聲明
5.3.9 (attributeGroup)聲明
5.3.10 用簡單內容和屬性創(chuàng)建元素
5.3.11 數(shù)據(jù)類型
5.3.12 (simpleType)聲明
5.4 創(chuàng)建一個來自多個文檔的模式
5.4.1 (import)聲明
5.4.2 (include)聲明
5.5 XML Schema的開發(fā)文檔
5.5.1 注釋
5.5.2 來自其他名稱空間的屬性
5.5.3 注解
5.6 小結
5.7 習題
第6章 RELAX NG
6.1 XML與緊湊型語法
6.2 RELAX NG樣式
6.3 樣式和語法的組合、重用
6.3.1 命名樣式
6.3.2 組合命名的樣式定義
6.3.3 用include指令實現(xiàn)模式的模塊化
6.3.4 重定義插入的命名樣式
6.3.5 用notAllowed屬性刪除樣式
6.3.6 擴展和限制
6.3.7 嵌套語法
6.4 RELAX NG的其他特性
6.4.1 名稱空間
6.4.2 名稱類
6.4.3 數(shù)據(jù)類型
6.4.4 表樣式
6.4.5 注釋與分區(qū)
6.5 資源鏈接
6.6 小結
6.7 習題
第Ⅲ部分 處 理 過 程
第7章 XPath
7.1 XML文檔的表示方法
7.2 XML文檔的模型
7.3 可視化XPath
7.3.1 理解上下文
7.3.2 什么是XPath的結點
7.3.3 XPath 1.0的類型
7.4 簡寫語法和詳寫語法
7.5 XPath 1.0軸
7.5.1 子軸
7.5.2 屬性軸
7.5.3 祖先軸
7.5.4 祖先自身軸
7.5.5 子孫軸
7.5.6 子孫自身軸
7.5.7 后繼軸
7.5.8 后繼兄弟軸
7.5.9 名稱空間軸
7.5.10 雙親軸
7.5.11 前驅結點
7.5.12 前驅兄弟軸
7.5.13 自身軸
7.6 XPath 1.0的函數(shù)
7.6.1 布爾函數(shù)
7.6.2 結點集函數(shù)
7.6.3 數(shù)值函數(shù)
7.6.4 字符串函數(shù)
7.7 謂詞
7.8 XPath表達式的結構
7.9 XPath 2.0
7.9.1 改進的XPath 數(shù)據(jù)模型
7.9.2 W3C XML Schema 數(shù)據(jù)類型
7.9.3 XPath 2.0新增的函數(shù)
7.9.4 XPath 2.0特性
7.10 小結
7.11 習題
第8章 XSLT
8.1 什么是XSLT
8.1.1 重構XML
8.1.2 顯示XML文檔
8.2 XSLT處理器的處理過程
8.3 實例運行
8.3.1 Saxon XSLT 處理器簡介
8.3.2 Saxon XSLT 處理器的安裝
8.4 過程性語言與描述性語言
8.4.1 過程性語言
8.4.2 描述性語言
8.5 XSLT的基本元素
8.5.1 (xsl:stylesheet)元素
8.5.2 (xsl:template)元素
8.5.3 (xsl:apply-templates)元素..
8.6 從源樹中讀取信息
8.6.1 (xsl:value-of)元素
8.6.2 (xsl:copy)元素
8.6.3 (xsl:copy-of)元素
8.7 用(xsl:output)元素控制輸出
8.8 條件處理
8.8.1 (xsl:if)元素
8.8.2 (xsl:choose)元素
8.9 (xsl:for-each)元素
8.10 (xsl:sort)元素
8.11 XSLT模式
8.12 XSLT變量和參數(shù)
8.13 命名模板和(xsl:call-template)元素
8.14 XSLT函數(shù)
8.15 XSLT 2.0
8.15.1 XSLT 2.0的分組元素
8.15.2 非XML輸入源和字符串處理
8.15.3 多文檔輸出
8.15.4 用戶自定義函數(shù)
8.15.5 xsl:value-of的變化
8.16 小結
8.17 習題
第Ⅳ部分 數(shù) 據(jù) 庫
第9章 XML查詢語言——XQuery
9.1 為什么出現(xiàn)XQuery
9.1.1 歷史因素
9.1.2 技術因素
9.1.3 現(xiàn)狀
9.2 XQuery 工具
9.2.1 Saxon簡介
9.2.2 X-Hive.com在線幫助
9.2.3 X-Hive數(shù)據(jù)庫
9.2.4 Tamino數(shù)據(jù)庫
9.2.5 微軟的SQL Server 2005
9.2.6 Oracle
9.3 XQuery實例
9.3.1 輸入函數(shù)
9.3.2 檢索結點
9.3.3 元素構造器
9.3.4 XQuery序體
9.3.5 XQuery序體(續(xù))
9.3.6 計算構造器
9.3.7 語法
9.4 XQuery數(shù)據(jù)模型
9.4.1 與XPath 2.0和XSLT 2.0共享的數(shù)據(jù)模型
9.4.2 結點類型
9.4.3 結點集序列
9.4.4 文檔順序
9.4.5 項與結點的比較
9.4.6 XQuery的數(shù)據(jù)類型
9.4.7 XQuery的軸
9.5 XQuery的表達式
9.6 XQuery函數(shù)
9.6.1 concat()函數(shù)
9.6.2 count()函數(shù)
9.7 在XQuery查詢命令里使用參數(shù)
9.8 用戶自定義函數(shù)
9.9 展望
9.9.1 升級功能
9.9.2 全文搜索
9.10 小結
9.11 習題
第10章 XML與數(shù)據(jù)庫
10.1 對有效的XML數(shù)據(jù)存儲的需求
10.1.1 日益增大的XML數(shù)據(jù)量
10.1.2 比較基于XML的數(shù)據(jù)和關系數(shù)據(jù)
10.2 存儲XML的方法
10.2.1 把XML保存到文件系統(tǒng)里
10.2.2 XML與傳統(tǒng)數(shù)據(jù)庫
10.2.3 原生XML數(shù)據(jù)庫
10.3 原生XML數(shù)據(jù)庫的使用
10.3.1 獲取并安裝eXist
10.3.2 交互操作eXist
10.4 XML在商業(yè)化的RDBMS數(shù)據(jù)庫里的作用
10.4.1 SQL Server 2000的XML功能
10.4.2 支持Web服務
10.5 在開放源代碼RDBMS中使用XML
10.5.1 安裝MySQL
10.5.2 在MySQL里添加信息
10.5.3 MySQL查詢命令
10.5.4 用MySQL更新XML數(shù)據(jù)
10.5.5 在MySQL里使用XML
10.5.6 客戶端對XML的支持
10.6 選擇一個存儲XML的數(shù)據(jù)庫
10.7 未來展望
10.8 小結
10.9 習題
第Ⅴ部分 程 序 設 計
第11章 文檔對象模型(DOM)
11.1 XML DOM的作用
11.2 W3C與文檔對象模型
11.3 顯示DOM結點的兩種方法
11.4 運行實例的工具軟件
11.5 結點對象
11.5.1 Node對象的屬性
11.5.2 Node對象的方法
11.5.3 裝入XML文檔
11.5.4 文本結點的效果
11.5.5 NamedNodeMap對象
11.5.6 NodeList對象
11.5.7 DOMException對象
11.6 Document接口
11.7 在InfoPath 2007中應用XML DOM
11.8 小結
11.9 習題
第12章 XML簡單API
12.1 SAX的本質和作用
12.1.1 SAX簡史
12.1.2 從哪里下載SAX軟件
12.1.3 設置SAX
12.2 接收SAX事件
12.2.1 ContentHandler接口
12.2.2 ErrorHandler接口
12.2.3 DTDHandler接口
12.2.4 EntityResolver接口
12.2.5 特性與屬性
12.2.6 擴展接口
12.3 SAX的利與弊
12.4 消費者、生產者和過濾器
12.5 其他語言
12.6 小結
12.7 習題
第Ⅵ部分 通 信
第13章 RSS、Atom和內容聚合
13.1 聚合與元數(shù)據(jù)
13.1.1 聚合系統(tǒng)
13.1.2 RSS的起源
13.1.3 RSS-DEV和RSS 1.0
13.1.4 UserLand與RSS 2.0
13.1.5 Atom格式
13.2 新聞feed
13.2.1 新聞閱讀器
13.2.2 數(shù)據(jù)質量
13.3 一個簡單的聚合器
13.3.1 feed模型
13.3.2 程序流程
13.3.3 實現(xiàn)程序
13.3.4 用XSLT轉換RSS格式
13.4 幾個有用的網站地址
13.5 小結
13.6 習題
第14章 Web服務
14.1 什么是遠程過程調用
14.2 RPC協(xié)議
14.2.1 DCOM
14.2.2 IIOP
14.2.3 Java RMI
14.3 新的RPC協(xié)議——Web服務
14.3.1 XML-RPC
14.3.2 網絡傳輸
14.4 使用REST規(guī)范
14.5 Web服務的堆棧技術
14.5.1 SOAP
14.5.2 WSDL
14.5.3 UDDI
14.5.4 相關規(guī)范
14.6 小結
14.7 習題
第15章 SOAP和WSDL
15.1 SOAP基礎
15.2 在Windows 2003、XP和2000操作系統(tǒng)里運行實例
15.3 RPC新協(xié)議——SOAP
15.3.1 使用REST
15.3.2 基本的SOAP消息
15.3.3 比較復雜的SOAP交互
15.4 定義Web服務語言——WSDL
15.4.1 (definitions)
15.4.2 (types)
15.4.3 (messages)
15.4.4 (portTypes)
15.4.5 (binding)
15.4.6 (soap:body)
15.4.7 (service)
15.4.8 其他綁定方式
15.5 小結
15.6 習題
第16章 Ajax
16.1 異步更新的最初嘗試
16.1.1 微軟與Mozilla之間的較量
16.1.2 跨瀏覽器解決方案
16.2 基本的發(fā)送步驟
16.3 服務器的傳輸和處理過程
16.3.1 JSON
16.3.2 信用卡驗證程序
16.3.3 AutoSuggest下拉框
16.4 服務器端的代理
16.5 小結
16.6 習題
第Ⅶ部分 顯 示
第17章 樣式表(CSS)
17.1 為什么使用樣式表
17.2 CSS簡介
17.2.1 CSS屬性
17.2.2 繼承
17.2.3 把樣式表插入到XML文檔
17.2.4 選擇符
17.3 CSS用于XML文檔的布局
17.3.1 盒模型
17.3.2 樣式表的定位
17.4 設計表格數(shù)據(jù)
17.5 XML文檔中的鏈接
17.5.1 Firefox對XLink的支持
17.5.2 用XHTML名稱空間建立超鏈接
17.6 在XML文檔里插入圖像
17.7 通過樣式表給文檔添加內容
17.8 屬性內容
17.8.1 屬性選擇符
17.8.2 在XML文檔里使用屬性值
17.9 小結
17.10 習題
第18章 XHTML語言
18.1 樣式與內容相互獨立
18.2 XHTML 1.x
18.2.1 XHTML的文檔類型定義
18.2.2 設計XHTML文檔的基本變化
18.2.3 格式化XHTML文檔
18.2.4 嚴格型文檔處理速度更快
18.2.5 XHTML工具
18.2.6 驗證XHTML文檔
18.2.7 文檔驗證存在的陷阱
18.2.8 MIME類型存在的陷阱
18.3 XHTML模塊化
18.3.1 模塊實現(xiàn)程序
18.3.2 XHTML 1.1
18.3.3 XHTML基本型
18.4 XHTML的未來趨勢
18.5 小結
18.6 習題
第19章 可縮放矢量圖形(SVG)
19.1 什么是SVG
19.1.1 可縮放、矢量和圖形
19.1.2 啟動SVG
19.1.3 SVG工具軟件
19.2 SVG初步
19.2.1 視圖和單位
19.2.2 畫家模型
19.2.3 組
19.2.4 坐標變換
19.2.5 路徑命令
19.2.6 圖像
19.2.7 文本
19.2.8 注釋(Comments)、說明(Annotation)和元數(shù)據(jù)(Metadata)
19.2.9 腳本設計
19.2.10 網站上的SVG
19.3 Tangram——一個實例程序
19.3.1 XHTML包裝器
19.3.2 SVG圖形
19.3.3 Tangram腳本程序
19.4 閱讀材料
19.5 小結
19.6 習題
第20章 XForms
20.1 XForms對HTML表單的改進
20.2 XForms工具
20.3 一個演示性的XForms實例
20.4 XForms表單控件
20.4.1 xforms:input元素
20.4.2 xforms:secret元素
20.4.3 xforms:textarea元素
20.4.4 xforms:output元素
20.4.5 xforms:upload元素
20.4.6 xforms:range元素
20.4.7 xforms:trigger元素
20.4.8 xforms:submit元素
20.4.9 xforms:select元素
20.4.10 xforms:select1元素
20.5 XForms實例的約束條件
20.5.1 xforms:bind元素
20.5.2 在XForms中使用W3C
XML Schema
20.5.3 Schema或Bind元素:兩者擇其一
20.6 XForms事件
20.7 XForms動作模型
20.8 其他方法
20.8.1 微軟的InfoPath
20.8.2 Adobe LiveCycle表單設計器
20.8.3 HTML表單
20.9 小結
20.10 習題
第Ⅷ部分 案 例 研 究
第21章 案例研究——抵押貸款計算器
21.1 抵押貸款計算
21.2 準備工作
21.3 在線貸款計算器
21.3.1 嵌入Web計算服務
21.3.2 用SVG改善貸款計算器的外觀
21.3.3 給主頁添加框架
21.4 小結
第22章 案例研究——基于Ruby on Rails架構的抵押貸款計算器
22.1 抵押計算器
22.2 準備工作
22.3 建立項目
22.4 建立一個在線貸款計算器
22.4.1 開發(fā)Web主頁
22.4.2 嵌入Web計算服務
22.4.3 添加Ajax的支持
22.4.4 用SVG改進顯示效果
22.5 小結
附錄A 習題參考答案
附錄B XPath參考
附錄C XSLT參考
附錄D XML文檔對象模型
附錄E XML Schema元素與屬性
參考手冊
附錄F XML Schema數(shù)據(jù)類型
附錄G SAX 2.0.2參考手冊