《XML應用入門與提高》從初學者的角度出發,由淺入深、循序漸進地介紹了XML文檔應用與開發的相關知識,書中不但提供了大量XML的示例,還提供了大量的實戰和上機練習用于演練。
《XML應用入門與提高》共分13章,主要內容包括標記語言的類型和歷史,XML的概念、特點和用途,XML與其他語言的區別,XML的相關標準技術,XML的使用優勢、應用領域和開發工具,XML的構成元素、文檔聲明、元素、標記、屬性、字符、實體和命名空間,DTD、XSD、XPath、XQuery、XSLT、XLink、XPointer、Web服務和WSDL,還包括DOM解析器和SAX解析器對XML文檔的解析,以及在C#語言中處理XML文檔數據等。在《XML應用入門與提高》最后一章提供了一個綜合項目——XML通信錄作為結束。
《XML應用入門與提高》涉及面廣泛,幾乎涉及XML應用與開發的所有重要知識,適合所有XML初學者使用。另外,對于大中專和培訓班的學生來說,《XML應用入門與提高》更是一本不可多得的教材。
前 言
XML中文被稱為可擴展標記語言,是SGML(標準通用標記語言)的子集。使用XML可以用來標記數據、定義數據類型,它是一種允許用戶對自己的標記語言進行定義的源語言。XML非常適合萬維網傳輸,它提供了統一的方法來描述和交換獨立于應用程序或供應商的結構化數據。
使用XML不僅可以從HTML中分離數據,還可以交換數據和共享數據。另外,許多新的Internet語言都是通過XML進行創建的,本書將詳細介紹與XML相關的知識,包括與XML有關的技術。
本書內容
全書共分13章,主要內容如下。
第1章 XML概述。本章著重介紹XML的基本知識,包括它的概念、特點、用途、與其他語言的區別、相關技術以及使用優勢和應用領域等內容。
第2章 XML入門。本章介紹XML基本語法和文檔組成,包括標記、屬性和元素的使用,字符的使用,注釋的使用,以及實體引用和命名空間等內容。
第3章 XML與DTD。本章首先介紹DTD的概念和構成,接著介紹DTD文件中的元素和屬性聲明,然后介紹如何通過不同的方式引用DTD文件,最后再了解實體聲明和引用的相關知識。
第4章 XML與XSD。XSD的英文全稱是XML Schema Definition,有時也被稱為XML Schema。本章詳細介紹XSD技術,包括它的優點、文檔制定、構成元素、數據類型以及校驗工具等內容。
第5章 XPath和XQuery技術。本章從XSL常用標記開始介紹,然后依次介紹XPath技術和XQuery技術。
第6章 文檔顯示技術。本章著重介紹XSLT的知識,其內容包括XSLT模板、XSLT標記、基本判斷、條件判斷、循環處理、XSLT函數,以及在XSLT中如何使用CSS等。
第7章 XLink和XPointer技術。本章首先介紹XLink技術,包括它的語法、屬性、簡單鏈接和擴展鏈接,然后介紹XPointer技術,包括它的概念、形式、位置路徑、位置集合、位置步以及對XPath的擴展內容等。
第8章 Web服務和WSDL技術。本章著重介紹WSDL的知識,在介紹WSDL技術之前,首先會了解Web服務。
第9章 DOM解析器操作XML文檔。本章重點介紹如何使用DOM解析器對XML文檔進行解析。其主要內容包括XML DOM的作用、XML DOM與W3C的關系、常用的操作對象、DOM節點類型以及節點操作等。
第10章 SAX解析XML文檔。本章將詳細介紹如何使用SAX解析器來處理XML文檔。其主要內容包括SAX的歷史版本、工作原理、監聽器接口、解析API、解析步驟以及接口應用等。
第11章 C#中的XML應用。本章介紹如何使用C#語言處理XML文檔,包括XML與DataSet的交互、System.xml命名空間和處理XML數據常用類等內容。
第12章 XML中的Web應用。本章介紹XML在Web中的應用,使用ASP.NET環境和SQL Server數據庫,包括XML數據綁定控件的使用、XML數據與SQL Server之間的轉換、站點地圖中的XML以及ASP.NET配置文件的介紹等。
第13章 通訊錄。本章主要介紹使用ASP結合XML實現通訊錄的過程,包括定義XML文件、添加聯系人、查看聯系人、修改和刪除聯系人。
本書特色
本書內容詳細、實例豐富,知識面廣,全面地講解了XML的應用和開發。與已經出版的相關圖書相比,這本圖書的最大特點體現在以下幾個方面。
知識全面,內容豐富。本書緊緊圍繞XML的相關知識展開詳細的講解,涵蓋了實際開發中的具體應用代碼。
理論和示例結合。本書中幾乎每一個知識點都有豐富而典型的練習,而且每一章最后都會通過一個或多個綜合實戰總結本章的知識。作為一本XML入門書,理論與練習很好地結合起來進行講解,最容易讓讀者快速掌握。
應用廣泛,提供文檔。對于大多數的精選實戰案例,都會向讀者提供詳細的實現步驟,結構清晰簡明,分析深入淺出,并且有些實戰很貼近實際。
隨書光盤。本書配備了視頻教學文件,包括每個章節所涉及的源代碼、開發環境的安裝演示等。讀者可以通過視頻文件更加直觀地學習XML的知識。
網站技術支持。讀者在學習或者工作的過程中,如果遇到問題,可以直接登錄www.itzcn.com與我們取得聯系,作者會在第一時間內給予回復。
貼心的提示。為了便于讀者閱讀,全書還穿插了一些技巧、提示等小貼士,體例約定如下。
提示:通常是一些貼心的提醒,讓讀者加深印象或提供建議,或者是解決問題的方法。
注意:提出學習過程中需要特別注意的一些知識點和內容,或者相關信息。
技巧:通過簡短的文字,指出知識點在應用時的一些小竅門。
讀者對象
本書適合作為軟件開發入門者的自學用書,也適合作為高等院校相關專業的教學參考書,還可供開發人員查閱、參考。
XML開發入門者;
XML初學者以及在校學生;
各大中專院校的在校學生和相關授課老師;
準備從事與XML應用相關的人員。
本書由祝紅濤和陳軍紅編著,參與本書編寫的人員還有程朝斌、王詠梅、郝軍啟、王慧、鄭小營、張浩華、王超英、張凡、趙振方、張艷梅等,在此特表示感謝。在本書的編寫過程中,我們力求精益求精,但書中難免會存在一些疏漏或不足之處,敬請廣大讀者批評、指正。
編 者
第1章 XML概述
1.1 標記語言概述
1.1.1 標記語言的類型
1.1.2 標記語言的歷史
1.2 XML的基礎知識
1.2.1 XML的概念
1.2.2 XML的特點
1.2.3 XML的用途
1.3 XML與HTML語言
1.3.1 語法要求不同
1.3.2 標記不同
1.3.3 作用不同
1.3.4 其他不同
1.4 XML的相關技術
1.4.1 W3C組織
1.4.2 技術標準
1.5 XML的優勢
1.5.1 技術優勢
1.5.2 商業優勢
1.6 XML的應用領域
1.6.1 電子商務
1.6.2 網絡出版
1.6.3 移動通信
1.6.4 Web服務
1.6.5 Web集成
1.6.6 配置文件
1.6.7 分布式計算
1.6.8 前景觀望
1.7 XML開發工具
1.8 實戰——XML文檔引入CSS文件
1.9 思考與練習
第2章 XML入門
2.1 XML文檔
2.1.1 XML文檔構成
2.1.2 XML文檔聲明
2.1.3 XML文檔注釋
2.1.4 XML處理指令
2.2 XML元素和標記
2.2.1 元素和標記
2.2.2 元素定義
2.2.3 元素特性
2.3 XML元素屬性
2.3.1 屬性的使用
2.3.2 元素和屬性
2.4 XML中的字符和實體
2.4.1 實體概述
2.4.2 CDATA文本段
2.4.3 文檔規范
2.5 XML命名空間
2.5.1 命名空間概述
2.5.2 自定義命名空間
2.5.3 命名空間的特點
2.5.4 默認的命名空間
2.6 實戰——系統用戶信息管理
2.7 本章習題
第3章 XML與DTD
3.1 DTD簡介
3.1.1 DTD概述
3.1.2 DTD的構成
3.1.3 DTD文檔定義
3.2 元素聲明
3.2.1 元素聲明簡介
3.2.2 元素聲明分類
3.3 屬性
3.3.1 屬性聲明
3.3.2 屬性類型
3.3.3 屬性附加聲明
3.4 實戰——水果信息DTD
3.5 DTD引用
3.5.1 引用內部DTD
3.5.2 引用外部DTD
3.5.3 混合引用DTD
3.6 實體聲明與引用
3.6.1 實體的概念與分類
3.6.2 內部普通實體
3.6.3 外部普通實體
3.6.4 參數實體
3.7 實戰——衣帽配飾信息管理
3.8 本章習題
……
第4章 XML與XSD
第5章 XPath和XQuery語言
第6章 文檔顯示技術
第7章 XLink和XPointer技術
第8章 Web服務和WSDL技術
第9章 DOM解析器操作XML文檔
第10章 SAX解析XML文檔
第11章 C#中的XML應用
第12章 XML中的Web應用
第13章 通訊錄
習題答案
第1章
XML概述
XML是一個在Internet上到處可見的流行術語,同時它也是一項日趨成熟的技術。在真實世界中有許多應用,特別是在數據管理、顯示和組織等方面。毫不夸張地說,XML正在成為今天一切Web服務和大多數面向服務架構(ServiceOrientedArchitecture,SOA)的基礎。XML是整天與數據打交道的使用者的重要工具,不管是在Internet上公開的數據還是某個機構內部的私有數據。
本章將向讀者介紹XML的基本概念、特點、用途和應用領域等知識,XML的結構以及相關技術將在本書后面的章節進行討論。
本章學習目標:
了解常用的標記語言和分類
熟悉XML的概念和特點
熟悉XML的用途
掌握XML與HTML的區別
了解W3C組織
掌握XML的技術標準
熟悉XML的技術優勢和商業優勢
了解XML的開發工具
掌握XML與CSS如何結合使用
1.1標記語言概述
XML通常被稱為可擴展性標記語言,它是標記語言的一種,因此本書在介紹XML之前會首先介紹一下標記語言的知識。本節的內容包括兩部分,首先了解標記語言的分類,然后再了解它的發展歷史。
1.1.1標記語言的類型
標記語言是一種將文本以及文本相關的其他信息結合起來,展現出關于文檔結構和數據處理細節的計算機文字編碼。文本相關的其他信息(包括例如文本的結構和表示信息等)與原來的文本結合在一起,但是需要使用標記進行標識。
標記語言不僅僅是一種語言,就像許多語言一樣,需要一個運行時環境讓它有用。提供運行時環境的元素稱為用戶代理。通常會將標記語言稱為置標語言,一般情況下它包括以下3種類型。
1.標識性標記語言
標識性標記語言(PresentationalMarkup)定義了在編碼過程中標記文檔的結構信息。例如在文本文件中,文件的標題可能需要用特定的格式表示(例如居中或者放大等),這時就需要標記文件的標題。字處理以及桌面出版產品有時候能夠自動地推斷出這類結構信息,但是絕大多數的編輯器(像Wiki這樣的純文本編輯器)還不能解決這個問題。
2.過程性標記語言
過程性標記語言(ProceduralMarkup)一般都專注于文字的表達,但是通常對于文本編輯者可見,并且能夠被軟件根據出現的順序依次解讀。為了格式化一個標題,在標題文本前會緊接著插入一系列的格式標識符,以指示計算機轉換到居中的顯示模式,同時加大及加粗字體。在標題文本后會緊接著綴上格式中止標識,對于更高級的系統宏命令或者堆棧模式會讓這一過程的實現方式更加豐富。
大多數情況下,過程性標記能力包含一個Turing-complete編程語言。過程性標記語言的范例包含nroff、troff、TeX、Lout以及PostScript。過程性標記語言被廣泛應用在專業出版領域,專業的出版商會根據要求使用不同的標記語言以達到出版要求。
3.描述性標記語言
描述性標記有時被稱為邏輯標記或概念上的標記,鼓勵作者將編寫的方式描述在概念上,而非視覺上。
下面對目前常見的幾種標記語言進行簡單說明。
標準通用標記語言(SGML),是一種專門的置標語言,被用作編寫《牛津英語詞典》的電子版本。由于它較為復雜,因此難以普及。
超文本標記語言(HTML),是為網頁創建和其他可在網頁瀏覽器中看到的信息設計的一種標記語言。
可擴展標記語言(XML),又稱可擴展置標語言。其中“置標”是指計算機所能理解的信息符號,通過這種標記,計算機之間可以處理包含各種信息的文章等。
可延伸超文本標記語言(ExtensibleHyperTextMarkupLanguage,XHTML),也是一種標記語言,其表現方式與超文本標記語言類似,不過在語法上更加嚴格。
1.1.2標記語言的歷史
標記語言用一系列約定好的標記來對電子文檔進行標記,以實現對電子文檔的語義、結構和格式的定義。這些標記必須很容易和內容區分,并且易于識別。
1969年,IBM公司開發了一種文檔描述語言,用來解決不同系統中文檔格式不同的問題。這樣一來,文檔的顯示和打印可能更少或更多地依賴特殊的硬件,不過這樣的系統需要不同的計算機系統,提供專門的軟件來顯示和打印文檔。IBM公司把這種標識語言稱作通用標記語言,英文縮寫為GML,全稱是GenelizedMarkupLanguage。GML是IBM公司許多文檔系統的基礎,包括Script和Bookmaster。IBM公司提出在各文檔之間共享一些相似的屬性,如字體大小和版面,并且設計了一種文檔系統,通過在文檔中輔加一種標記,從而可以標識文檔中的每種元素。
經過若干年的發展,在標記語言的概念達成共識的基礎上,IBM公司的研究人員CharlesGoldfarb帶領的開發團隊一直在完善GML,并將其稱為標準通用語言(StandardGeneralizedMarkupLanguage,SGML)。SGML成為IBM公司內部格式化和維護合法化文件的手段。后來它被不斷地擴展和修改,作為一種全面的信息標準以適應工業范圍的廣泛應用。1986年,SGML被國際標準化組織(ISO)所采納。盡管SGML的功能非常強大,但是由于它非常復雜,需要一大堆昂貴的軟件配合運行,因而很長一段時間都沒有被推廣。
1989年,歐洲物理量子實驗室(CERN)的信息專家發明了萬維網,通過超文本鏈接語言(HTML)人們可以隨便瀏覽網頁的內容,并把原來技術專家之間的網絡通信,普及到了尋常百姓家。隨著蒂姆?伯納斯德?李的不懈努力,他在締造了互聯網的同時也完善了HTML。