版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、XML入門經(jīng)典教程目錄XML 基礎(chǔ)XML 簡(jiǎn)介 什么是 XML,以及它與 HTML 的區(qū)別。 如何使用 XML 不同的 XML 使用方式。 XML 樹結(jié)構(gòu) XML 文檔如何形成一種有邏輯的樹結(jié)構(gòu)。 XML 語法 有邏輯且非常簡(jiǎn)單的 XML 語法規(guī)則。 XML 元素 XML 元素、內(nèi)容和命名規(guī)則、父與子元素之間的關(guān)系。 XML 屬性 如何使用 XML 屬性提供關(guān)于元素的額外信息。 XML 驗(yàn)證 形式良好的文檔與合法文檔之間的差異,以及如何規(guī)定 XML 文檔的結(jié)構(gòu)。 XML 驗(yàn)證器 簡(jiǎn)單的 XML 在線語法檢查工具。 XML 瀏覽器支持 大部分常用的瀏覽器對(duì) XML 的支持 在瀏覽器中查看 XML
2、 如何通過您的瀏覽器來查看 XML 文件。 使用 CSS 來顯示 XML 如何使用 CSS 來顯示一個(gè) XML 文件。 使用 XSL 來顯示 XML 如何使用 XSL 來顯示一個(gè) XML 文件。 XML JavaScriptXML 解析器 如何使用瀏覽器來讀取、更新、創(chuàng)建并操作 XML 文檔。 XML DOM 關(guān)于 XML 文檔對(duì)象模型(DOM)。 XML to HTML 如何在 HTML 文檔中顯示 XML 數(shù)據(jù)。 XMLHttpRequest 對(duì)象 如何在不重新加載頁面的情況下,使用來自服務(wù)器的數(shù)據(jù)對(duì)頁面進(jìn)行更新。 XML 應(yīng)用程序 如何使用 XML 數(shù)據(jù)和 JavaScript 來創(chuàng)建復(fù)
3、雜的 HTML 應(yīng)用程序。 XML 高級(jí)XML 命名空間 如何使用 XML 命名空間避免元素命名沖突。 XML CDATA 如何告知 XML 解析器不去解析文本。 XML 編碼 如何在您的 XML 文檔使用不同的字符集。 XML 服務(wù)器 如何從服務(wù)器端輸出 XML。 XML DOM 高級(jí) 更多關(guān)于 XML 文檔對(duì)象模型的知識(shí)。 XML Dont 本節(jié)講解在在使用 XML 時(shí)盡量避免使用的技術(shù)。 把數(shù)據(jù)存儲(chǔ)到 XML 文件 通常地,我們?cè)跀?shù)據(jù)庫中存儲(chǔ)數(shù)據(jù)。不過,假如我們希望數(shù)據(jù)更加易用,那么可以將數(shù)據(jù)存儲(chǔ)于 XML 文件之中。 XML 技術(shù) 與 XML 相關(guān)的最常用的技術(shù)。 現(xiàn)實(shí)生活中的 XML
4、 在現(xiàn)實(shí)世界中 XML 如何被使用的例子。 XML 編輯器 當(dāng)編輯 XML 文檔時(shí),為什么要使用 XML 編輯器。 XML 總結(jié) 本文包括在本教程所學(xué)內(nèi)容的一個(gè)總結(jié),以及我們向你推薦的下一步應(yīng)該學(xué)習(xí)的內(nèi)容。 XML 實(shí)例/測(cè)驗(yàn)XML 實(shí)例 非常多的 XML 實(shí)例! XML 測(cè)驗(yàn) 在 W3School 測(cè)試你的 XML 技能! 01、XML 簡(jiǎn)介 Previous Page Next Page XML 被設(shè)計(jì)用來傳輸和存儲(chǔ)數(shù)據(jù)。HTML 被設(shè)計(jì)用來顯示數(shù)據(jù)。應(yīng)該掌握的基礎(chǔ)知識(shí):在您繼續(xù)學(xué)習(xí)之前,需要對(duì)以下知識(shí)有基本的了解: HTML / XHTML JavaScript 如果您希望首先學(xué)習(xí)這些項(xiàng)
5、目,請(qǐng)?jiān)谖覀兊?首頁 訪問這些教程。什么是 XML? XML 指可擴(kuò)展標(biāo)記語言(EXtensible Markup Language) XML 是一種標(biāo)記語言,很類似 HTML XML 的設(shè)計(jì)宗旨是傳輸數(shù)據(jù),而非顯示數(shù)據(jù) XML 標(biāo)簽沒有被預(yù)定義。您需要自行定義標(biāo)簽。 XML 被設(shè)計(jì)為具有自我描述性。 XML 是 W3C 的推薦標(biāo)準(zhǔn) XML 與 HTML 的主要差異XML 不是 HTML 的替代。XML 和 HTML 為不同的目的而設(shè)計(jì):XML 被設(shè)計(jì)為傳輸和存儲(chǔ)數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的內(nèi)容。HTML 被設(shè)計(jì)用來顯示數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的外觀。HTML 旨在顯示信息,而 XML 旨在傳輸信息。XML
6、 是不作為的(沒有任何行為的 XML)也許這有點(diǎn)難以理解,但是 XML 不會(huì)做任何事情。XML 被設(shè)計(jì)用來結(jié)構(gòu)化、存儲(chǔ)以及傳輸信息。下面是 John 寫給 George 的便簽,存儲(chǔ)為 XML:GeorgeJohnReminderDont forget the meeting!這個(gè)標(biāo)簽有標(biāo)題以及留言。它也包含了發(fā)送者和接受者的信息。但是,這個(gè) XML 文檔仍然沒有做任何事情。它僅僅是包裝在 XML 標(biāo)簽中的純粹的信息。我們需要編寫軟件或者程序,才能傳送、接收和顯示出這個(gè)文檔。XML 僅僅是純文本XML 沒什么特別的。它僅僅是純文本而已。有能力處理純文本的軟件都可以處理 XML。不過,能夠讀懂
7、XML 的應(yīng)用程序可以有針對(duì)性地處理 XML 的標(biāo)簽。標(biāo)簽的功能性意義依賴于應(yīng)用程序的特性。通過 XML 您可以發(fā)明自己的標(biāo)簽上例中的標(biāo)簽沒有在任何 XML 標(biāo)準(zhǔn)中定義過(比如 和 )。這些標(biāo)簽是由文檔的創(chuàng)作者發(fā)明的。這是因?yàn)?XML 沒有預(yù)定義的標(biāo)簽。在 HTML 中使用的標(biāo)簽(以及 HTML 的結(jié)構(gòu))是預(yù)定義的。HTML 文檔只使用在 HTML 標(biāo)準(zhǔn)中定義過的標(biāo)簽(比如 、 等等)。XML 允許創(chuàng)作者定義自己的標(biāo)簽和自己的文檔結(jié)構(gòu)。XML 不是對(duì) HTML 的替代XML 是對(duì) HTML 的補(bǔ)充。XML 不是對(duì) HTML 的替代,理解這一點(diǎn)很重要。在大多數(shù) web 應(yīng)用程序中,XML 用于傳
8、輸數(shù)據(jù),而 HTML 用于格式化并顯示數(shù)據(jù)。對(duì) XML 的最好的描述是:XML 是獨(dú)立于軟件和硬件的信息傳輸工具。XML 是 W3C 的推薦標(biāo)準(zhǔn)可擴(kuò)展標(biāo)記語言 (XML) 于 1998 年 2 月 10 日成為 W3C 的推薦標(biāo)準(zhǔn)。XML 無所不在當(dāng)我們看到 XML 標(biāo)準(zhǔn)突飛猛進(jìn)的開發(fā)進(jìn)度,以及大批的軟件開發(fā)商采用這個(gè)標(biāo)準(zhǔn)的日新月異的速度時(shí),真的是不禁感嘆這真是令人嘆為觀止。目前,XML 在 Web 中起到的作用不會(huì)亞于一直作為 Web 基石的 HTML。XML 無所不在。XML 是各種應(yīng)用程序之間進(jìn)行數(shù)據(jù)傳輸?shù)淖畛S玫墓ぞ?,并且在信息存?chǔ)和描述領(lǐng)域變得越來越流行。02、XML 的用途 Pre
9、vious Page Next Page XML 應(yīng)用于 web 開發(fā)的許多方面,常用于簡(jiǎn)化數(shù)據(jù)的存儲(chǔ)和共享。XML 把數(shù)據(jù)從 HTML 分離如果你需要在 HTML 文檔中顯示動(dòng)態(tài)數(shù)據(jù),那么每當(dāng)數(shù)據(jù)改變時(shí)將花費(fèi)大量的時(shí)間來編輯 HTML。通過 XML,數(shù)據(jù)能夠存儲(chǔ)在獨(dú)立的 XML 文件中。這樣你就可以專注于使用 HTML 進(jìn)行布局和顯示,并確保修改底層數(shù)據(jù)不再需要對(duì) HTML 進(jìn)行任何的改變。通過使用幾行 JavaScript,你就可以讀取一個(gè)外部 XML 文件,然后更新 HTML 中的數(shù)據(jù)內(nèi)容。您將在稍后的章節(jié)學(xué)習(xí)更多這方面的內(nèi)容。XML 簡(jiǎn)化數(shù)據(jù)共享在真實(shí)的世界中,計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)使用不兼
10、容的格式來存儲(chǔ)數(shù)據(jù)。XML 數(shù)據(jù)以純文本格式進(jìn)行存儲(chǔ),因此提供了一種獨(dú)立于軟件和硬件的數(shù)據(jù)存儲(chǔ)方法。這讓創(chuàng)建不同應(yīng)用程序可以共享的數(shù)據(jù)變得更加容易。XML 簡(jiǎn)化數(shù)據(jù)傳輸通過 XML,可以在不兼容的系統(tǒng)之間輕松地交換數(shù)據(jù)。對(duì)開發(fā)人員來說,其中一項(xiàng)最費(fèi)時(shí)的挑戰(zhàn)一直是在因特網(wǎng)上的不兼容系統(tǒng)之間交換數(shù)據(jù)。由于可以通過各種不兼容的應(yīng)用程序來讀取數(shù)據(jù),以 XML 交換數(shù)據(jù)降低了這種復(fù)雜性。XML 簡(jiǎn)化平臺(tái)的變更升級(jí)到新的系統(tǒng)(硬件或軟件平臺(tái)),總是非常費(fèi)時(shí)的。必須轉(zhuǎn)換大量的數(shù)據(jù),不兼容的數(shù)據(jù)經(jīng)常會(huì)丟失。XML 數(shù)據(jù)以文本格式存儲(chǔ)。這使得 XML 在不損失數(shù)據(jù)的情況下,更容易擴(kuò)展或升級(jí)到新的操作系統(tǒng)、新應(yīng)用
11、程序或新的瀏覽器。XML 使您的數(shù)據(jù)更有用由于 XML 獨(dú)立于硬件、軟件以及應(yīng)用程序,XML 使您的數(shù)據(jù)更可用,也更有用。不同的應(yīng)用程序都能夠訪問您的數(shù)據(jù),不僅僅在 HTML 頁中,也可以從 XML 數(shù)據(jù)源中進(jìn)行訪問。通過 XML,您的數(shù)據(jù)可供各種閱讀設(shè)備使用(手持的計(jì)算機(jī)、語音設(shè)備、新聞閱讀器等),還可以供盲人或其他殘障人士使用。XML 用于創(chuàng)建新的 Internet 語言很多新的 Internet 語言是通過 XML 創(chuàng)建的:其中的例子包括: XHTML - 最新的 HTML 版本 WSDL - 用于描述可用的 web service WAP 和 WML - 用于手持設(shè)備的標(biāo)記語言 RSS
12、 - 用于 RSS feed 的語言 RDF 和 OWL - 用于描述資源和本體 SMIL - 用于描述針針對(duì) web 的多媒體 03、XML 樹結(jié)構(gòu) Previous Page Next Page XML 文檔形成了一種樹結(jié)構(gòu),它從“根部”開始,然后擴(kuò)展到“枝葉”。一個(gè) XML 文檔實(shí)例XML 使用了簡(jiǎn)單的具有自我描述性的語法:GeorgeJohnReminderDont forget the meeting!第一行是 XML 聲明。它定義 XML 的版本 (1.0) 和所使用的編碼 (ISO-8859-1 = Latin-1/西歐字符集)。下一行描述文檔的根元素(像在說:“本文檔是一個(gè)便簽
13、”):接下來 4 行描述根的 4 個(gè)子元素(to, from, heading 以及 body):GeorgeJohnReminderDont forget the meeting!最后一行定義根元素的結(jié)尾:從本例可以設(shè)想,該 XML 文檔包含了 John 給 George 的一張便簽。XML 具有出色的自我描述性,你同意嗎?XML 文檔形成一種樹結(jié)構(gòu)XML 文檔必須包含根元素。該元素是所有其他元素的父元素XML 文檔中的元素形成了一棵文檔樹。這棵樹從根部開始,并擴(kuò)展到樹的最底端。所有元素均可擁有子元素: . 父、子以及同胞等術(shù)語用于描述元素之間的關(guān)系。父元素?fù)碛凶釉?。相同層?jí)上的子元素成為
14、同胞(兄弟或姐妹)。所有元素均可擁有文本內(nèi)容和屬性(類似 HTML 中)。實(shí)例上圖表示下面的 XML 中的一本書: Everyday Italian Giada De Laurentiis 2005 30.00 Harry Potter J K. Rowling 2005 29.99 Learning XML Erik T. Ray 2003 39.95 例子中的根元素是 。文檔中的所有 元素都被包含在 中。 元素有 4 個(gè)子元素:、。04、XML 語法規(guī)則 Previous Page Next Page XML 的語法規(guī)則很簡(jiǎn)單,且很有邏輯。這些規(guī)則很容易學(xué)習(xí),也很容易使用。所有 XML 元
15、素都須有關(guān)閉標(biāo)簽在 HTML,經(jīng)常會(huì)看到?jīng)]有關(guān)閉標(biāo)簽的元素:This is a paragraphThis is another paragraph在 XML 中,省略關(guān)閉標(biāo)簽是非法的。所有元素都必須有關(guān)閉標(biāo)簽:This is a paragraphThis is another paragraph 注釋:您也許已經(jīng)注意到 XML 聲明沒有關(guān)閉標(biāo)簽。這不是錯(cuò)誤。聲明不屬于XML本身的組成部分。它不是 XML 元素,也不需要關(guān)閉標(biāo)簽。XML 標(biāo)簽對(duì)大小寫敏感XML 元素使用 XML 標(biāo)簽進(jìn)行定義。XML 標(biāo)簽對(duì)大小寫敏感。在 XML 中,標(biāo)簽 與標(biāo)簽 是不同的。必須使用相同的大小寫來編寫打開標(biāo)簽
16、和關(guān)閉標(biāo)簽:這是錯(cuò)誤的。這是正確的。 注釋:打開標(biāo)簽和關(guān)閉標(biāo)簽通常被稱為開始標(biāo)簽和結(jié)束標(biāo)簽。不論您喜歡哪種術(shù)語,它們的概念都是相同的。XML 必須正確地嵌套在 HTML 中,常會(huì)看到?jīng)]有正確嵌套的元素:This text is bold and italic在 XML 中,所有元素都必須彼此正確地嵌套:This text is bold and italic在上例中,正確嵌套的意思是:由于 元素是在 元素內(nèi)打開的,那么它必須在 元素內(nèi)關(guān)閉。XML 文檔必須有根元素XML 文檔必須有一個(gè)元素是所有其他元素的父元素。該元素稱為根元素。 . XML 的屬性值須加引號(hào)與 HTML 類似,XML 也可擁
17、有屬性(名稱/值的對(duì))。在 XML 中,XML 的屬性值須加引號(hào)。請(qǐng)研究下面的兩個(gè) XML 文檔。第一個(gè)是錯(cuò)誤的,第二個(gè)是正確的:GeorgeJohn GeorgeJohn 在第一個(gè)文檔中的錯(cuò)誤是,note 元素中的 date 屬性沒有加引號(hào)。實(shí)體引用(”&)在 XML 中,一些字符擁有特殊的意義。如果你把字符 放在 XML 元素中,會(huì)發(fā)生錯(cuò)誤,這是因?yàn)榻馕銎鲿?huì)把它當(dāng)作新元素的開始。這樣會(huì)產(chǎn)生 XML 錯(cuò)誤:if salary 1000 then為了避免這個(gè)錯(cuò)誤,請(qǐng)用一個(gè)實(shí)體引用來代替 字符:if salary < 1000 then 在 XML 中,有 5 個(gè)預(yù)定義的實(shí)體引用:<
18、大于&&和號(hào)'單引號(hào)"引號(hào)注釋:在 XML 中,只有字符 和 & 確實(shí)是非法的。大于號(hào)是合法的,但是用實(shí)體引用來代替它是一個(gè)好習(xí)慣。XML 中的注釋在 XML 中編寫注釋的語法與 HTML 的語法很相似: XML 中的空格會(huì)被保留HTML 會(huì)把多個(gè)連續(xù)的空格字符裁減為一個(gè):HTML:Hello my name is David.輸出:Hello my name is David.在 XML 中,文檔中的空格不會(huì)被刪節(jié)。XML 以LF 存儲(chǔ)換行在 Windows 應(yīng)用程序中,換行通常以一對(duì)字符來存儲(chǔ):回車符 (CR) 和換行符 (LF)。這對(duì)字符與打字機(jī)設(shè)置新行的動(dòng)作
19、有相似之處。在 Unix 應(yīng)用程序中,新行以 LF 字符存儲(chǔ)。而 Macintosh 應(yīng)用程序使用 CR 來存儲(chǔ)新行。05、XML 元素 Previous Page Next Page XML 文檔包含 XML 元素。什么是 XML 元素?XML 元素指的是從(且包括)開始標(biāo)簽直到(且包括)結(jié)束標(biāo)簽的部分。元素可包含其他元素、文本或者兩者的混合物。元素也可以擁有屬性。 Harry Potter J K. Rowling 2005 29.99 Learning XML Erik T. Ray 2003 39.95 在上例中, 和 都擁有元素內(nèi)容,因?yàn)樗鼈儼似渌亍?只有文本內(nèi)容,因?yàn)樗鼉H包
20、含文本。在上例中,只有 元素?fù)碛袑傩?(category=CHILDREN)。XML 命名規(guī)則XML 元素必須遵循以下命名規(guī)則: 名稱可以含字母、數(shù)字以及其他的字符 名稱不能以數(shù)字或者標(biāo)點(diǎn)符號(hào)開始 名稱不能以字符 “xml”(或者 XML、Xml)開始 名稱不能包含空格 可使用任何名稱,沒有保留的字詞。最佳命名習(xí)慣使名稱具有描述性。使用下劃線的名稱也很不錯(cuò)。名稱應(yīng)當(dāng)比較簡(jiǎn)短,比如:,而不是:。避免 - 字符。如果您按照這樣的方式進(jìn)行命名:first-name,一些軟件會(huì)認(rèn)為你需要提取第一個(gè)單詞。避免 . 字符。如果您按照這樣的方式進(jìn)行命名:,一些軟件會(huì)認(rèn)為 name 是對(duì)象
21、 first 的屬性。避免 : 字符。冒號(hào)會(huì)被轉(zhuǎn)換為命名空間來使用(稍后介紹)。XML 文檔經(jīng)常有一個(gè)對(duì)應(yīng)的數(shù)據(jù)庫,其中的字段會(huì)對(duì)應(yīng) XML 文檔中的元素。有一個(gè)實(shí)用的經(jīng)驗(yàn),即使用數(shù)據(jù)庫的名稱規(guī)則來命名 XML 文檔中的元素。非英語的字母比如 也是合法的 XML 元素名,不過需要留意當(dāng)軟件開發(fā)商不支持這些字符時(shí)可能出現(xiàn)的問題。XML 元素是可擴(kuò)展的(增加新元素)XML 元素是可擴(kuò)展,以攜帶更多的信息。請(qǐng)看下面這個(gè) XML 例子:GeorgeJohnDont forget the meeting! 讓我們?cè)O(shè)想一下,我們創(chuàng)建了一個(gè)應(yīng)用程序,可將 、 以及 元素提取出來,并產(chǎn)生以下的輸出:MESSA
22、GETo: GeorgeFrom: JohnDont forget the meeting!想象一下,之后這個(gè) XML 文檔作者又向這個(gè)文檔添加了一些額外的信息:2008-08-08GeorgeJohnReminderDont forget the meeting!那么這個(gè)應(yīng)用程序會(huì)中斷或崩潰嗎?不會(huì)。這個(gè)應(yīng)用程序仍然可以找到 XML 文檔中的 、 以及 元素,并產(chǎn)生同樣的輸出。XML 的優(yōu)勢(shì)之一,就是可以經(jīng)常在不中斷應(yīng)用程序的情況進(jìn)行擴(kuò)展。06、XML 屬性 Previous Page Next Page XML 元素可以在開始標(biāo)簽中包含屬性,類似 HTML。XML 屬性 (Attribut
23、e) 提供關(guān)于元素的額外信息XML 屬性從 HTML,你會(huì)回憶起這個(gè):。src 屬性提供有關(guān) 元素的額外信息。在 HTML 中(以及在 XML 中),屬性提供有關(guān)元素的額外信息: 屬性通常提供不屬于數(shù)據(jù)組成部分的信息。在下面的例子中,文件類型與數(shù)據(jù)無關(guān),但是對(duì)需要處理這個(gè)元素的軟件來說卻很重要:computer.gifXML 屬性必須加引號(hào)(單/雙引號(hào),如果屬性值本身包含雙引號(hào),那么使用實(shí)體引用,或者可以使用單引號(hào)包圍它)屬性值必須被引號(hào)包圍,不過單引號(hào)和雙引號(hào)均可使用。比如一個(gè)人的性別,person 標(biāo)簽可以這樣寫:或者這樣也可以:注釋:如果屬性值本身包含雙引號(hào),那么有必要使用單引號(hào)包圍它,
24、就像這個(gè)例子:或者可以使用實(shí)體引用:XML 元素 vs. 屬性請(qǐng)看這些例子: Anna Smith female Anna Smith 在第一個(gè)例子中,sex 是一個(gè)屬性。在第二個(gè)例子中,sex 則是一個(gè)子元素。兩個(gè)例子均可提供相同的信息。沒有什么規(guī)矩可以告訴我們什么時(shí)候該使用屬性,而什么時(shí)候該使用子元素。我的經(jīng)驗(yàn)是在 HTML 中,屬性用起來很便利,但是在 XML 中,您應(yīng)該盡量避免使用屬性。如果信息感覺起來很像數(shù)據(jù),那么請(qǐng)使用子元素吧。我最喜歡的方式下面的三個(gè) XML 文檔包含完全相同的信息:第一個(gè)例子中使用了 date 屬性:GeorgeJohnReminderDont forget t
25、he meeting! 第二個(gè)例子中使用了 date 元素:08/08/2008GeorgeJohnReminderDont forget the meeting! 第三個(gè)例子中使用了擴(kuò)展的 date 元素(這是我的最愛): 08 08 2008GeorgeJohnReminderDont forget the meeting!避免 XML 屬性?(盡量使用元素)因使用屬性而引起的一些問題: 屬性無法包含多個(gè)值(子元素可以) 屬性無法描述樹結(jié)構(gòu)(子元素可以) 屬性不易擴(kuò)展(為未來的變化) 屬性難以閱讀和維護(hù) 請(qǐng)盡量使用元素來描述數(shù)據(jù)。而僅僅使用屬性來提供與數(shù)據(jù)無關(guān)的信息。不要做這樣的蠢事(這不
26、是 XML 應(yīng)該被使用的方式):針對(duì)元數(shù)據(jù)的 XML 屬性(有關(guān)數(shù)據(jù)的數(shù)據(jù))有時(shí)候會(huì)向元素分配 ID 引用。這些 ID 索引可用于標(biāo)識(shí) XML 元素,它起作用的方式與 HTML 中 ID 屬性是一樣的。這個(gè)例子向我們演示了這種情況: George John Reminder Dont forget the meeting! John George Re: Reminder I will not 上面的 ID 僅僅是一個(gè)標(biāo)識(shí)符,用于標(biāo)識(shí)不同的便簽。它并不是便簽數(shù)據(jù)的組成部分。在此我們極力向您傳遞的理念是:元數(shù)據(jù)(有關(guān)數(shù)據(jù)的數(shù)據(jù))應(yīng)當(dāng)存儲(chǔ)為屬性,而數(shù)據(jù)本身應(yīng)當(dāng)存儲(chǔ)為元素。07、XML 驗(yàn)證 Pre
27、vious Page Next Page 擁有正確語法的 XML 被稱為“形式良好”的 XML。通過某個(gè) DTD 進(jìn)行了驗(yàn)證的 XML 是“合法”的 XML。形式良好的 XML 文檔一個(gè)形式良好的 XML 文檔擁有正確的語法一個(gè)形式良好的 XML 文檔會(huì)遵守前幾章介紹過的 XML 語法規(guī)則: XML 文檔必須有根元素 XML 文檔必須有關(guān)閉標(biāo)簽 XML 標(biāo)簽對(duì)大小寫敏感 XML 元素必須被正確的嵌套 XML 屬性必須加引號(hào) GeorgeJohnReminderDont forget the meeting!驗(yàn)證 XML 文檔一個(gè)合法的 XML 文檔是形式良好的 XML 文檔,同樣遵守文檔類型定
28、義 (DTD) 的語法規(guī)則GeorgeJohnReminderDont forget the meeting! 在上例中,DOCTYPE 聲明是對(duì)外部 DTD 文件的引用。下面的段落展示了這個(gè)文件的內(nèi)容。XML DTD DTD 的作用是定義 XML 文檔的結(jié)構(gòu)。它使用一系列合法的元素來定義文檔結(jié)構(gòu):!DOCTYPE note 如果您希望學(xué)習(xí) DTD,請(qǐng)?jiān)L問我們的 DTD 教程。XML Schema(基于 XML 的 DTD 代替者)W3C 支持一種基于 XML 的 DTD 代替者,它名為 XML Schema: 如果您需要學(xué)習(xí) XML Schema,請(qǐng)?jiān)L問我們的 XML Schema 教程。一
29、個(gè)通用的驗(yàn)證器為了幫助您檢查 XML 文件的語法,我們創(chuàng)建了這個(gè)工具,以便您對(duì)任何 XML 文件進(jìn)行語法檢查。請(qǐng)看下一節(jié)。08、查看 XML 文件 Previous Page Next Page 在所有現(xiàn)代瀏覽器中,可查看原始的 XML 文件打開 XML 文件 - XML 文檔將顯示為代碼顏色化的根以及子元素。通過點(diǎn)擊元素左側(cè)的加號(hào)或減號(hào),可以展開或收起元素的結(jié)構(gòu)。如需查看不帶有 + 和 - 符號(hào)的源代碼,請(qǐng)從瀏覽器菜單中選擇“查看源代碼”。注釋:在 Netscape, Opera 以及 Safari 中,僅僅會(huì)顯示元素文本!要查看原始的 XML,請(qǐng)右擊頁面,然后選擇“查看源代碼”。查看某個(gè)無
30、效的 XML 文件如果瀏覽器打開了某個(gè)有錯(cuò)誤的 XML 文件,那么它會(huì)報(bào)告這個(gè)錯(cuò)誤。請(qǐng)查看這個(gè) XML 文件:note_error.xml其他的 XML 實(shí)例請(qǐng)查看這些 XML 文檔,這會(huì)有助于您建立對(duì) XML 的感性認(rèn)識(shí)。一個(gè) XML 的 CD 目錄 這是我父親的 CD 收藏,被存儲(chǔ)為 XML 數(shù)據(jù)(我猜可能是很老很無聊的題目. :-)) 一個(gè) XML 的植物目錄 來自園藝店的植物目錄,存儲(chǔ)為 XML 數(shù)據(jù)。 一個(gè)簡(jiǎn)單的菜單 這是來自餐館的早餐菜單,存儲(chǔ)為 XML 數(shù)據(jù)。 為什么 XML 會(huì)這樣顯示?XML 文檔不會(huì)攜帶有關(guān)如何顯示數(shù)據(jù)的信息。由于 XML 標(biāo)簽由 XML 文檔的作者“發(fā)明”
31、,瀏覽器無法確定像 這樣一個(gè)標(biāo)簽究竟描述一個(gè) HTML 表格還是一個(gè)餐桌。在沒有任何有關(guān)如何顯示數(shù)據(jù)的信息的情況下,大多數(shù)的瀏覽器都會(huì)僅僅把 XML 文檔顯示為源代碼。在下面的章節(jié),我們會(huì)了解幾個(gè)有關(guān)這個(gè)顯示問題的解決方案,其中會(huì)使用 CSS、XSL、JavaScript 以及 XML 數(shù)據(jù)島。09、使用 XSLT 顯示 XML(首選) Previous Page Next Page 通過使用 XSLT,您可以向 XML 文檔添加顯示信息。使用 XSLT 顯示 XMLXSLT 是首選的 XML 樣式表語言。XSLT (eXtensible Stylesheet Language Transfo
32、rmations) 遠(yuǎn)比 CSS 更加完善。使用 XSLT 的方法之一是在瀏覽器顯示 XML 文件之前,先把它轉(zhuǎn)換為 HTML,正如以下的這些例子演示的那樣:查看 XML 文件, - - - Belgian Waffles $5.95 two of our famous Belgian Waffles with plenty of real maple syrup 650 - Strawberry Belgian Waffles $7.95 light Belgian waffles covered with strawberries and whipped cream 900 - Berry
33、-Berry Belgian Waffles $8.95 light Belgian waffles covered with an assortment of fresh berries and whipped cream 900 - French Toast $4.50 thick slices made from our homemade sourdough bread 600 - Homestyle Breakfast $6.95 two eggs, bacon or sausage, toast, and our ever-popular hash browns 950 XSLT 樣
34、式表, - - - - - - - - - ( calories per serving) 查看結(jié)果。下面是此 XML 文件的一個(gè)片斷。 第二行,把這個(gè) XML 文件鏈接到 XSL 文件: Belgian Waffles $5.95 two of our famous Belgian Waffles 650 如果您需要學(xué)習(xí)更多有關(guān) XSLT 的知識(shí),請(qǐng)?jiān)L問我們的XSLT 教程。在服務(wù)器上通過 XSLT 轉(zhuǎn)換 XML在上例中,XSLT 轉(zhuǎn)換是由瀏覽器完成的,瀏覽器讀取的是 XML 文件。在使用 XSLT 來轉(zhuǎn)換 XML 時(shí),不同的瀏覽器可能會(huì)產(chǎn)生不同結(jié)果。為了減少這種問題,可以在服務(wù)器上進(jìn)行 X
35、SLT 轉(zhuǎn)換。查看結(jié)果。請(qǐng)注意,不論轉(zhuǎn)換由服務(wù)器還是由瀏覽器進(jìn)行,輸出結(jié)果完成相同。10、使用 CSS 顯示 XML Previous Page Next Page 通過使用 CSS,可為 XML 文檔添加顯示信息。使用 CSS 顯示您的 XML?使用 CSS 來格式化 XML 文檔是有可能的。下面的例子就是關(guān)于如何使用 CSS 樣式表來格式化某個(gè)XML文檔:這是 XML 文件:CD 目錄這是樣式表:CSS 文件最后,請(qǐng)查看效果:由 CSS 文件格式化的 CD 目錄下面是此XML文件的一個(gè)片斷。 第二行,把這個(gè) XML 文件鏈接到 CSS 文件: Empire Burlesque Bob Dy
36、lan USA Columbia 10.90 1985 Hide your heart Bonnie Tyler UK CBS Records 9.90 1988 .注釋:使用 CSS 格式化 XML 不能代表 XML 文檔樣式化的未來。XML 文檔應(yīng)當(dāng)使用 W3C 的 XSL 標(biāo)準(zhǔn)進(jìn)行格式化!11、XML 解析器(如何使用瀏覽器來讀取、更新、創(chuàng)建并操作 XML 文檔) Previous Page Next Page 大多數(shù)瀏覽器都有讀取和操作 XML 的內(nèi)建 XML 解析器。解析器把 XML 轉(zhuǎn)換為 JavaScript 可訪問的對(duì)象。實(shí)例W3School 提供的實(shí)例是獨(dú)立于瀏覽器和平臺(tái)的。這些例子可以在所有現(xiàn)代瀏覽器中運(yùn)行。加載并解析 XML 文件(例子)function parseXML()try /Internet Explorer xmlDoc=new ActiveXObject(Microsoft.XMLDOM); catch(e) try /Firefox, Mozilla, Opera, etc. xmlDoc=documen
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 豌豆思維課程設(shè)計(jì)待遇
- 2025年度個(gè)人自建住房施工監(jiān)理服務(wù)合同樣本4篇
- 砌墻工程施工方案
- 樓房加固施工方案模板
- 食工原理課程設(shè)計(jì)果蔬汁
- 年度醫(yī)療健康大數(shù)據(jù)戰(zhàn)略市場(chǎng)規(guī)劃報(bào)告
- 年度化學(xué)材料:灌漿料產(chǎn)業(yè)分析報(bào)告
- 二零二五版智能門窗系統(tǒng)安裝與遠(yuǎn)程監(jiān)控服務(wù)合同4篇
- 影視劇制作方與臨時(shí)演員的2025年度聘用合同6篇
- 2025年豬圈配套設(shè)施安裝服務(wù)合同124篇
- 《劇本寫作要素》課件
- 部編版六年級(jí)下冊(cè)道德與法治全冊(cè)教案教學(xué)設(shè)計(jì)
- 【高空拋物侵權(quán)責(zé)任規(guī)定存在的問題及優(yōu)化建議7100字(論文)】
- 二年級(jí)數(shù)學(xué)上冊(cè)100道口算題大全 (每日一套共26套)
- 物流無人機(jī)垂直起降場(chǎng)選址與建設(shè)規(guī)范
- 肺炎臨床路徑
- 外科手術(shù)鋪巾順序
- 聚焦任務(wù)的學(xué)習(xí)設(shè)計(jì)作業(yè)改革新視角
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(吳洪貴)任務(wù)三 APP的品牌建立與價(jià)值提供
- 電子競(jìng)技范文10篇
- 食堂服務(wù)質(zhì)量控制方案與保障措施
評(píng)論
0/150
提交評(píng)論