一、顯示XML XML文檔本身只描述數據內容,它的顯示功能由樣式單來完成。利用樣式單技術時,輸出平台不局限於顯示器,可以是打印機、繪圖儀或者是多媒體播放器。使用獨立的樣式單文件制定顯示格式的一大優勢在於:對同一份數據文件可以制定不同的樣式風格,應用在不同的場合,使數據能夠更合理、更有針對性地表現出來,提高了數據的重用性。 目前,W3C正式推薦的樣式單標准有兩種: 一種是層疊樣式單CSS(Cascading Style Sheets);另一種是可擴展樣式單語言XSL。 CSS最初是用於制定HTML文檔顯示格式的,現在也可用來對XML文檔進行簡單的樣式規劃。CSS在HTML中的應用極為廣泛,但它在文本置換、依據文本內容而決定顯示方式、對數據進行排序等智能化的顯示功能上略顯不足。 而XSL則較好地解決了CSS的這些問題,它最常用的功能是將XML的置標轉換成為Html的置標並顯示輸出。而且XSL還可以將XML文檔向任何其他格式的結構文檔進行轉換。這種功能在B2B的商務模式中有著很好的應用前景。 XSL利用模式匹配的方法,選擇XML文檔中需要處理的元素/屬性,再針對這些特定的對象制定相應的轉換規則。借助XSL,我們還可以添加新的元素/屬性,對所有元素/屬性進行重新排序、循環處理、條件判斷等程序化的控制,使其適應各種復雜的需求。 在XML文檔中引用XSL的格式如下: <?xml-stylesheet type=“text/xsl” href=“Employees.xsl” ?> 一個XML文檔只能引用一個XSL樣式單。XML解析器在處理XML文檔時,遇到處理指令後,會載入指定的XSL樣式單,然後根據其中的規則進行相應的轉換處理。
二、綁定XML Web服務器與客戶機之間的數據傳遞方式有三種: HTML頁面、XML文檔以及XML數據島。其中,XML數據島通過特定的標簽把XML數據直接嵌入到HTML文檔中。采用數據島作為交互手段,不僅可以使數據具備一定的語義信息,同時還能保持HTML原有的一些特色,如利用用戶端腳本程序實現動態信息交換等。 XML數據島的實現方法是在HTML文檔中使用<XML>標簽。代碼的嵌入方式有兩種: 直接嵌入(如例1)和外部引用(如例2)。 例1: <XML ID=“MyXMLData”> <?xml version=“1.0” ?> ……XML definitions…… </XML> 例2: <XML ID=“MyXMLData” SRC=“http://www.microsoft.com/MyXMLData.xml”> </XML> 在插入數據島之後,就可以把XML中的元素同HTML元素鏈接在一起,利用HTML的表現手法顯示XML數據,這種鏈接關系被稱為綁定。綁定的方式按照HTML元素的性質可以分為兩種:單值對象和表格對象。 單值對象的數據綁定需要在HTML元素中設置DATASRC屬性和DATAFLD屬性。DATASRC屬性是區分XML數據島對象的唯一標識,並且必須加上前綴“#”;DATAFLD屬性則標識了數據島中的元素對象。例3就是把一個HTML文本輸入框與<salary>元素進行了綁定。 例3: <INPUT TYPE=“TEXT” DATASRC=“#MyXMLData” DATAFLD=“salary”> 至於表格對象,主要是與Html中的<TABLE>標簽綁定。一般地,可以借助DSO(Data Source Object,數據源對象)等ActiveX控件更方便、有效地處理表格數據。具體使用方法在以後的內容中將做詳細介紹。
三、訪問XML Document Object Model(文檔對象模型)簡稱為DOM,是對Web文檔進行應用開發、編程的應用程序接口(API),是W3C公布的一種跨平台的、與語言無關的接口規范。 DOM采用對象模型和一系列的接口來描述XML文檔的內容和結構,即利用對象把文檔模型化。這種對象模型實現的基本功能包括: ● 描述文檔表示和操作的接口; ● 接口的行為和屬性; ● 接口之間的關系以及互操作。 DOM對結構化的XML文檔進行解析,文檔中的指令、元素、實體、屬性等所有個體都可以用對象模型表示。整個文檔的邏輯結構類似一棵樹,生成的對象模型就是樹的節點,每個對象同時包含了方法和屬性。 利用DOM,開發人員可以進行動態地創建XML文檔、遍歷結構、添加/修改/刪除內容等操作。DOM面向對象的特性,使人們在處理和XML解析相關的事務時節省大量精力,是一種符合代碼重用思想的強有力編程工具。
四、驗證XML XML文檔必須嚴格遵守語法規范,即都必須是“格式良好的”。同時,XML文檔還應當符合語義方面的規范,即是“有效的”。對XML文檔有效性的檢查稱為對XML的“驗證”(Validation)。 “格式良好的”是對XML文檔最基本的要求。凡是“格式良好的”XML文檔都可以被XML解析器解析,進而生成對象樹,以便接受進一步的處理。而且“有效的” XML必定是“格式良好的”。在此基礎上,還要遵守DTD或XML Schema的語法規定,只有這樣才能保證XML文檔的易讀性,同時還能充分地體現數據信息之間的關系,從而更好地描述數據。 DTD可以定義XML文檔的詞匯和語法。利用正則表達式,DTD除了可以說明XML文件中哪些元素是必需的、哪些是可選的、元素所能包含的屬性等元素本身信息外,還可以描繪元素之間的結構信息。比如,某個元素可以嵌套哪些子元素、子元素的個數以及出現次序、是否可選等等。 典型的DTD格式如下: ● 以DOCTYPE聲明為起始標志,告訴解析器以下內容屬於DTD; ● 位於DOCTYPE後的DTD名稱,必須與XML文檔中的根元素完全一致,後面再跟著一個“[”號,接下來才是DTD正文。 DTD有兩種使用方式: 內嵌式(如例4)和引用式(如例5)。它們在XML文檔中的位置都必須位於根元素出現之前。 例4: <?xml version=“1.0”?> <!DOCTYPE employees [ ……ELEMENT and ATTLIST definitions…… ]> <employees> ……XML data…… </employees> 例5: <?xml version=“1.0”?> <!DOCTYPE employees SYSTEM “Employees.dtd”> <employees> ……XML data…… </employees> 目前,DTD是W3C推薦的驗證XML文檔有效性的唯一正式規范,但它也有著許多不足: ● DTD過於復雜,要熟悉它的語法、標記集合需要一定的時間和精力,而且DTD采用的是非XML語法規則,不能用XML工具進行操作處理; ● DTD對數據類型定義支持不夠,所定義的數據類型有限,並且都是針對屬性而設立,無法滿足電子商務等Web應用所需要的豐富數據類型; ● 擴展機制復雜,也很脆弱,最大的弊病在於不能表達元素之間的相互關系; ● DTD不支持名稱空間的機制。 以上種種缺陷,促使W3C組織致力於尋求一種新的機制來取代DTD。在眾多的標准之中, Microsoft公司為主提出的XML Schema較為引人注目。它具有完全符合XML語法、豐富的數據類型、良好的可擴展性以及易被DOM等XML解析器處理等優點。 最後介紹一個用於XML驗證的小工具:xmlint.exe。它可以用來驗證XML文檔是“格式良好的”以及“有效的”,用法如下: xmlint c:\my_xml\*.xml <!--驗證所有XML文檔是否是“有效的”--> xmlint -w c:\my_xml\*.xml <!--僅驗證是否是“格式良好的”--> 可以訪問下面的網址下載該軟件: http://msdn.microsoft.com/downloads/tools/xmlint/XMLint.ASP