XML 指擴展標記語言_第1頁
XML 指擴展標記語言_第2頁
XML 指擴展標記語言_第3頁
XML 指擴展標記語言_第4頁
XML 指擴展標記語言_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、XML 指擴展標記語言XML 被設計用來描述數(shù)據(jù),其焦點是數(shù)據(jù)的內容。在我們的 XML 教程中,你將了解什么是 XML,以及 XML 與 HTML 之間的差異。同時你將學習如何開始在應用程序中使用 XML。開始學習 XML!XML 實例通過實例進行學習!使用我們的編輯器,你可以編輯 XML 代碼,然后點擊測試按鈕查看結果。 Try-It-Yourself!XML 測試在 W3School 測試你的 XML 技能!開始測驗!內容目錄XML 基礎XML 簡介什么是 XML,以及它與 HTML 的區(qū)別。如何使用 XML使用 XML 的不同方法。XML 語法嚴格但是簡單的 XML 語法規(guī)則。XML 元

2、素XML 元素,關系,內容和命名規(guī)則。XML 屬性如何使用 XML 屬性描述元素,或者提供關于元素的額外信息。XML驗證構成良好的文檔與合法文檔之間的差異,以及如何使用 DTD 來定義 XML 文檔的結構。XML 驗證器簡單的 XML 在線語法檢查工具XML 瀏覽器支持大部分常用的瀏覽器對 XML 的支持在瀏覽器中查看 XML如何查看 XML 文件。使用 CSS 來顯示 XML如何使用 CSS 來顯示一個XML文件。使用 XSL 來顯示 XML如何使用 XSL 來顯示一個XML文件。嵌入 HTML 的 XML如何在 HTML 文檔中嵌入 XML?,F(xiàn)實中的 XML有關 XML 如何被用來攜帶數(shù)據(jù)

3、的真實例子。Microsoft XML 解析器如需閱讀、更新、創(chuàng)建以及處理XML文檔,您就會用到 XML 解析器。XML 高級XML 命名空間如何使用 XML 命名空間避免元素命名沖突。XML CDATA如何告知 XML 解析器不去解析文本。XML 編碼如何編碼你的 XML 文檔。XML 服務器如何在服務器端生成 XMLXML 應用程序如何使用 IE 在 XML 文件中導航,以及如何創(chuàng)建完整的 XML 應用程序。XML HTTP Requests通過使用 XMLHttpRequest 對象,開發(fā)人員可以在頁面已載入后使用來自服務器的數(shù)據(jù)更新頁面。 保存數(shù)據(jù)至 XML 文件通常地,我們在數(shù)據(jù)庫中

4、存儲數(shù)據(jù)。不過,假如我們希望數(shù)據(jù)更加易用,那么可以將數(shù)據(jù)存儲于 XML 文件之中。針對 HTML 和 XML 的行為如何使用 CSS 行為選擇器來創(chuàng)建動態(tài)內容。XML 技術與 XML 相關的技術。XML 編輯器當編輯XML文檔時,為什么要使用 XML 編輯器。XML 總結本文包括在本教程所學內容的一個總結,以及我們向你推薦的下一步應該學習的內容。XML 實例/測驗XML 實例非常多的 XML 實例!XML 測驗在 W3School 測試你的 XML 技能!= XML 被設計用來描述數(shù)據(jù),其焦點是數(shù)據(jù)的內容。HTML 被設計用來顯示數(shù)據(jù),其焦點是數(shù)據(jù)的外觀。應該掌握的基礎知識:在您繼續(xù)學習之前,

5、需要對以下知識有基本的了解:• HTML / XHTML• JavaScript 或 VBScript如果您希望首先學習這些項目,請在我們的 首頁 訪問這些教程。什么是XML?• XML 指可擴展標記語言(EXtensible Markup Language)• XML 是一種標記語言,很類似 HTML• XML 被設計用來描述數(shù)據(jù)• XML 標簽沒有被預定義。您需要自行定義標簽。• XML 使用文件類型聲明(DTD)或者 XML Schema 來描述數(shù)據(jù)

6、。• 帶有 DTD 或者 XML Schema 的 XML 被設計為具有自我描述性。• XML 是一個 W3C 標準XML 是一個 W3C 標準可擴展標記語言于1998年2月10日被確立為 W3C 標準。您可以在我們的 W3C 教程 中獲得更多關于 XML 標準的信息。XML 與 HTML 的主要差異XML 被設計用來攜帶數(shù)據(jù)。XML 不是用來替代 HTML 的。XML 和 HTML 為不同的目的而設計:XML 被設計用來描述數(shù)據(jù),其焦點是數(shù)據(jù)的內容。HTML 被設計用來顯示數(shù)據(jù),其焦點是數(shù)據(jù)的外觀。HTML 旨在顯示信息,而 XML 旨在描述信息。沒有

7、任何行為的 XMLXML 是不作為的。也許這有點難以理解,但是 XML 不會做任何事情。XML 被設計用來結構化、存儲以及傳輸信息。 下面是 Jani 寫給 Tove 的便簽,存儲為 XML:<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>這個標簽有標題以及留言。它也包含了發(fā)送者和接受者的信息。

8、但是,這個 XML 文檔仍然沒有做任何事情。它僅僅是包裝在 XML 標簽中的純粹的信息。我們需要編寫軟件或者程序,才能傳送、接收和顯示出這個文檔。XML 是免費的、可擴展的XML 標簽沒有被預定義。您必須“發(fā)明”自己的標簽。被用來標記 HTML 文檔及其結構的標簽是預定義的。HTML 文檔的創(chuàng)作者只能使用在 HTML 標準中被定義的那些標簽(比如<p>、<h1>。)。XML 允許創(chuàng)作者定義自己的標簽以及自己的文檔結構。上面的例子中的標簽沒有在任何一個 XML 標準中被定義過。這些標簽是由 XML 文檔的作者發(fā)明的。 XML 是對 HTML 的補充XML 不是 HTML

9、的替代物。您需要理解 XML 不是 HTML 的替代物,這一點非常重要。在未來的 Web 開發(fā)中,最有可能出現(xiàn)的情況是,XML 會被用來描述數(shù)據(jù),而 HTML 會被用來格式化和顯示這些數(shù)據(jù)。我們關于 XML 最好的描述是:XML 是跨平臺的、用于傳輸信息且獨立于軟件和硬件的工具。 XML 在未來的 Web 開發(fā)中扮演的角色XML 將會無所不在。當我們看到 XML 標準突飛猛進的開發(fā)進度,以及大批的軟件開發(fā)商采用這個標準的日新月異的速度時,真的是不禁感嘆這真是令人嘆為觀止。我們堅定地認為,XML 將在 Web 的未來中起到的作用不會亞于一直作為 Web 基石的 HTML,并且,XML 將會成為所

10、有數(shù)據(jù)處理和數(shù)據(jù)傳輸?shù)淖畛S玫墓ぞ摺?理解這一點很重要,即 XML 是被設計為存儲、傳輸以及交換數(shù)據(jù)的。XML 不是被設計為用來顯示數(shù)據(jù)的。XML 可以將 HTML 與數(shù)據(jù)分離通過使用 XML,您的數(shù)據(jù)可存儲于 HTML 之外。當我們使用 HTML 來顯示數(shù)據(jù)時,數(shù)據(jù)存儲于 HTML 中。通過使用 XML,數(shù)據(jù)可以被存儲在單獨的 XML 文件中。這樣做的話,您就可以把注意力集中在使用 HTML 進行數(shù)據(jù)布局和顯示上面,并確保底層數(shù)據(jù)的改變不會牽扯到 HTML 的改變。XML 數(shù)據(jù)也可作為數(shù)據(jù)島存儲于 HTML 頁面內部。您仍然可以專注于使用 HTML 對數(shù)據(jù)進行格式化和顯示。XML 用于交換數(shù)

11、據(jù)通過使用 XML,可以在互不兼容的系統(tǒng)間交換數(shù)據(jù)。在現(xiàn)實世界中,計算機系統(tǒng)和數(shù)據(jù)庫通過互不兼容的格式來容納數(shù)據(jù)。對開發(fā)人員來說,其中一項最費時的挑戰(zhàn)一直是在因特網(wǎng)上的系統(tǒng)之間交換數(shù)據(jù)。通過將數(shù)據(jù)轉換為 XML,可以極大地降低這種復雜性,并創(chuàng)建可被許多不同類型的應用程序讀取的數(shù)據(jù)。 XML 和 B2B通過使用 XML,可以在因特網(wǎng)上交換金融信息。在不久的將來,預計會有很多關于 XML 和 B2B 的應用。XML 會成為企業(yè)間交換金融信息的最主要的語言。XML 可被用來共享數(shù)據(jù)通過使用 XML,純文本文件可用于共享數(shù)據(jù)。由于 XML 數(shù)據(jù)存儲為純文本格式,XML 提供了獨立于軟硬件的數(shù)據(jù)共享解決

12、方案。這使得不同的應用程序都可以更容易地創(chuàng)建數(shù)據(jù)。也更容易把某個系統(tǒng)擴展或更新為新的操作系統(tǒng)、服務器、應用程序以及瀏覽器。XML 可用于存儲數(shù)據(jù)通過使用 XML,純文本文件可用于存儲數(shù)據(jù)。也可使用 XML 將數(shù)據(jù)存儲于文件或數(shù)據(jù)庫之中。可以編寫從數(shù)據(jù)倉庫中存取信息的應用程序,而普通的應用程序就可被用來顯示這些數(shù)據(jù)。XML 使您的數(shù)據(jù)更有用通過使用 XML,您的數(shù)據(jù)可供更多的用戶使用。由于 XML 獨立于硬件、軟件以及應用程序,我們可以將自己的數(shù)據(jù)應用于更多的應用程序,而不僅僅限于 HTML 瀏覽器。其他的客戶端以及應用程序可將 XML 文件作為數(shù)據(jù)源來訪問,就像它們正在訪問某個數(shù)據(jù)庫一樣。您的

13、數(shù)據(jù)可供各種“閱讀機器”(代理,agents)使用,XML 可以讓您數(shù)據(jù)服務于盲人,或者有其他生理缺陷的人士。XML 可被用來創(chuàng)建新的語言XML 是 WAP 和 WML 之母。無線標記語言(WML),(被用來標記針對手持設備的因特網(wǎng)應用程序),是由 XML 編寫的。您可以在我們的WML 教程中閱讀更多關于 WML 的知識。假如開發(fā)人員都是理性的假如他們都是理性的,就讓未來的應用程序使用 XML 來交換數(shù)據(jù)吧。未來也許會出現(xiàn)某種字處理軟件、電子表格程序以及數(shù)據(jù)庫,它們可以使用純文本格式讀取彼此的數(shù)據(jù),而不需要使用任何的轉換程序。我們現(xiàn)在能做的只有祈禱微軟公司和所有其他的軟件開發(fā)商在這一方面取得一

14、致了。-XML 的語法規(guī)則既很簡單,又很嚴格。這些規(guī)則很容易學習,也很容易使用。正因為如此,創(chuàng)建可讀取及操作 XML 的軟件不是一件難事。一個 XML 文檔的例子XML 使用一種可自我描述的簡單的語法。<?xml version="1.0" encoding="ISO-8859-1"?><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't for

15、get me this weekend!</body></note>此文檔中的第一行 - XML 聲明 - 定義了 XML 的版本和文檔中使用的字符編碼。在這個例子中,遵守的是 XML 1.0 規(guī)范,并使用了 ISO-8859-1 字符集。接下來的一行描述了文檔的根元素(就像是在說:“本文檔是一個便簽”):<note>接下來的 4 行描述了根元素的 4 個子元素(to, from, heading, 以及 body):<to>Tove</to><from>Jani</from><heading>Re

16、minder</heading><body>Don't forget me this weekend!</body>最后的一行定義了根元素的結尾:</note>我們可以看到,這個 XML 文檔包含了一個由 Jani 留給 Tove 的便簽?,F(xiàn)在,您應該會同意我們的上述觀點,即 XML 具有完美的自我描述特性。所有元素都須有關閉標簽當使用 XML 時,省略關閉標簽是非法。在 HTML 中,某些元素不一定要有關閉標簽。在 HTML 中下面的代碼是合法的:<p>This is a paragraph<p>This is

17、another paragraph在 XML 中,所有的元素都要有關閉標簽:<p>This is a paragraph</p><p>This is another paragraph</p>注釋:您也許已經(jīng)從上面的例子中注意到 XML 聲明沒有關閉標簽。這不是錯誤。聲明不屬于XML本身的組成部分。它不是 XML 元素,也不需要關閉標簽。XML 標簽對大小寫敏感和 HTML 不同,XML 標簽對大小寫敏感。在 XML 中,標簽 <Letter> 和標簽 <letter> 是不同的。所以必須使用相同的大小寫打開并關閉標簽:&

18、lt;Message>這是錯誤的。</message><message>這是正確的。</message>XML 必須被正確地嵌套不正確的標簽嵌套對 XML 是沒有意義的。在 HTML 中,某些元素可以不正確地彼此嵌套在一起,就像這樣:<b><i>This text is bold and italic</b></i>在 XML 中,所有的元素必須正確地彼此嵌套,就像這樣:<b><i>This text is bold and italic</i></b>XM

19、L 文檔必須有根元素所有的 XML 必須包含可定義根元素的單一標簽對。所有其他的元素都必須處于這個根元素內部。所有的元素均可擁有子元素。子元素必須被正確地嵌套于它們的父元素內部:<root><child><subchild>.</subchild></child></root>XML 的屬性值須加引號在 XML 中,省略屬性值兩旁的引號是非法的。與 HTML 類似,XML 也可擁有屬性(名稱/值的對)。在 XML 中,XML 的屬性值須加引號。請研究下面的兩個 XML 文檔。第一個是錯誤的,第二個是正確的:<?xml

20、 version="1.0" encoding="ISO-8859-1"?><note date=12/11/2002><to>Tove</to><from>Jani</from></note><?xml version="1.0" encoding="ISO-8859-1"?><note date="12/11/2002"><to>Tove</to><from&g

21、t;Jani</from></note>在第一個文檔中,日期屬性沒有加引號。這是正確的:date="12/11/2002"。這是錯誤的:date=12/11/2002。在 XML 中,空格會被保留。在 XML 中,空格不會被截掉。這與 HTML 不同。在 HTML 中,像這樣的一個句子:Hello my name is Tove,會顯示為這樣:Hello my name is Tove,這是由于 HTML 會把多個連續(xù)的空格字符裁減為一個。在 XML 中,CR / LF 會被轉換為 LF在 XML 中,一個新的行(即換行)被存儲為 LF(Line F

22、eed,換行)。您熟悉打字機嗎?打字機是上世紀用來制造印刷文檔的機械設備。:-)當您用打字機鍵入了一行文字后,就需要手動將打印滑架移至左側頁邊空白的位置,并手動進紙(feed)一行。在 Windows 應用程序中,新行通常存儲為一對字符:回車(CR)和換行(LF)。這個字符對與打字機的設置新行的動作有異曲同工之處。在 Unix 應用程序中,新行通常存儲為 LF 字符。而 Macintosh 應用程序僅使用 CR 字符來存儲新行。XML 中的注釋在 XML 中書寫注釋的語法與 HTML 的語法類似:<!- This is a comment ->XML 沒什么特殊之處XML 沒什么特

23、殊之處。它只是一些純文本外加括在角形括號中的標簽而已??商幚砑兾谋疚募能浖部梢蕴幚?XML。在一個簡單的文本編輯器中,XML 標簽也可被顯示出來,不會被特殊地對待。在可識別 XML 的(XML-aware)應用程序中,XML 標簽會被專門處理。根據(jù)不同的應用程序種類,這些標簽也許是可見或不可見的,又或許擁有某種功能意義。-XML 元素是可擴展的,它們之間存在著某些關系。XML 元素須遵守一些簡單的命名規(guī)則。XML 元素是可擴展的XML 元素是可被擴展,以攜帶更多的信息。請看下面這個XML標簽例子:<note><to>Tove</to><from&g

24、t;Jani</from><body>Don't forget me this weekend!</body></note>讓我們設想一下,我們創(chuàng)建了一個應用程序,可將 <to>、<from> 以及 <body> 元素提取出來,并產生以下的輸出:MESSAGETo: ToveFrom: JaniDon't forget me this weekend!想象一下,之后這個 XML 文檔作者又向這個文檔添加了一些額外的信息:<note><date>2002-08-01<

25、/date><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>那么這個應用程序會中斷或崩潰嗎?不會。這個應用程序仍然可以找到 XML 文檔中的 <to>、<from> 以及 <body> 元素,并產生同樣的輸出: XML 文檔是可擴展的。XML 元素之間是有關系的元素之間有父與子

26、的關系。為了理解 XML 的術語,我們需要了解 XML 之間的關系是如何命名的,以及元素的內容是如何被描述的。 想象一下,關于某本書的描述:我的第一個XMLXML 簡介HTML 的概念XML 的概念XML 的語法元素必須擁有關閉標簽元素必須被正確地嵌套想象一下,XML 文檔是如何描述這本書的:<book><title>我的第一個XML</title><prod id="33-657" media="paper"></prod><chapter>XML 簡介<para>HT

27、ML 的概念</para><para>XML 的概念</para></chapter><chapter>XML 的語法<para>元素必須擁有關閉標簽</para><para>元素必須被正確地嵌套</para></chapter></book>book(書)是根元素。Title、prod 以及 chapter 是 book 的子元素。book 是 Title、prod 以及 chapter 的父元素。Title、prod 以及 chapter 是兄弟元素或者姐妹元

28、素,這是因為它們都擁有相同的父母。 元素擁有內容元素可以擁有不同的內容類型。一個 XML 元素由(且包括)元素的開始標簽起始,到(且包括)元素的結束標簽終止。一個元素可以擁有元素內容、混合型內容、簡易內容或者空內容。元素也可以擁有屬性。在上面的例子中,book 有元素內容,因為它包含了其他的元素。chapter 擁有混合型內容,因為即包含文本,也包含其他的元素。para 擁有簡易內容(或文本內容),因為它僅包含文本。prod 擁有空內容,因為它沒有攜帶信息。在上面的例子中,僅有 prod 元素擁有屬性。名為 id 的屬性的值為 "33-657"。名為 medea 的屬性的值

29、為 "paper"。元素命名XML 元素必須遵守這些命名規(guī)則:&#8226; 名字可包含字母、數(shù)字以及其他的字符&#8226; 名字不能以數(shù)字或者標點符號開始&#8226; 名字不能以字符“xml”(或者XML、Xml)開始&#8226; 名字不能包含空格當您“發(fā)明創(chuàng)造”元素名稱時,請留意并遵循下面的簡單規(guī)則:您可以使用任何名稱,沒有保留字,但是理想的做法是使名稱具有描述性。使用下劃線的名稱也很不錯。 例子: <first_name>,<last_name>應該在名稱中避免"-"和".&q

30、uot;。比方說,如果您將某個元素命名為"first-name",那么當您的軟件試圖從first段來提取名稱時可能會出現(xiàn)混亂的局面。或者如果您將某個元素命名為"",您的軟件也許會認為"name"是"first"對象的一個屬性。元素名稱可以是你希望的任何長度,但是也不要太夸張。名稱應當比較簡短,比如:<book_title>,而不是:<the_title_of_the_book>。XML 文檔經(jīng)常有一個對應的數(shù)據(jù)庫,其中的域會對應 XML 文檔中的某個元素。有一個實用的經(jīng)驗

31、,即使用數(shù)據(jù)庫的名稱規(guī)則命名 XML 文檔中的元素。非英語的字母比如éòá也是合法的XML元素名,不過需要留意當軟件開發(fā)商不支持這些字符時可能出現(xiàn)的問題。不應在 XML 元素名稱中使用 ":" ,這是由于它用于命名空間(namespaces)的保留字。-與 HTML 類似,XML 元素也可以在開始標簽中包含屬性。屬性用于提供關于元素的附加信息。XML 屬性XML 元素可擁有屬性?;貞浺幌?HTML 的這個標簽:<img src="computer.gif">。src 屬性提供了關于 img 元素的附加信息。 在

32、HTML(以及 XML)中,屬性可提供有關元素的附加(額外的)信息:<img src="computer.gif"><a href="demo.asp">屬性常常會提供并非數(shù)據(jù)組成部分的信息。在下面的例子中,文件的類型和數(shù)據(jù)是無關的,但是對需要處理這個元素的軟件來說卻很重要:<file type="gif">computer.gif</file>引號類型,"female" 還是 'female'?屬性值必須被引號所包圍,不過單引號和雙引號均可使用。比如

33、某人的性別,person 標簽可以這樣寫: <person sex="female">或者這樣也可以:<person sex='female'>注釋:如果屬性值本身包含雙引號,那么有必要使用單引號包圍它,就像這個例子:<gangster name='George "Shotgun" Ziegler'>注釋:如果屬性值本身包含單引號,那么有必要使用雙引號包圍它,就像這個例子:<gangster name="George 'Shotgun' Ziegler&q

34、uot;>使用元素還是屬性數(shù)據(jù)可存儲于子元素之中,或者在屬性中也可以。請看這些例子:<person sex="female"><firstname>Anna</firstname><lastname>Smith</lastname></person><person><sex>female</sex><firstname>Anna</firstname><lastname>Smith</lastname></p

35、erson>在第一個例子中,sex 是一個屬性。在第二個例子中,sex 則是一個子元素。兩個例子均可提供相同的信息。沒有什么規(guī)矩可以告訴我們什么時候該使用屬性,而什么時候該使用子元素。我的經(jīng)驗是在 HTML 中,屬性用起來很便利,但是在 XML 中,您應該盡量避免使用屬性。如果信息感覺起來很像數(shù)據(jù),那么請使用子元素吧。我最喜歡的方式我喜歡在子元素中存儲數(shù)據(jù)。下面是三個包含相同的信息的 XML 文檔:第一個例子中使用了屬性:<note date="12/11/2002"><to>Tove</to><from>Jani<

36、;/from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>第二個例子中使用了元素:<note><date>12/11/2002</date><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget

37、 me this weekend!</body></note>第三個例子中使用了擴展的元素(這是我的最愛):<note><date><day>12</day><month>11</month><year>2002</year></date><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't

38、 forget me this weekend!</body></note>避免使用屬性?我們應當避免使用屬性嗎?因使用屬性而引起的一些問題:&#8226; 屬性無法包含多個值(子元素可以)&#8226; 屬性不易擴展(為未來的變化)&#8226; 屬性無法描述結構(子元素可以)&#8226; 屬性更難被編程代碼處理&#8226; 不易通過某個 DTD 對屬性值進行測試 - DTD 用來定義 XML 文檔的合法元素如果您使用屬性作為數(shù)據(jù)的容器,那么就會造就難以閱讀和維護的文檔。請盡量使用元素來描述數(shù)據(jù)。而僅僅使用屬性來提供與數(shù)據(jù)無

39、關的信息。不要做這樣的蠢事(這不是 XML 應該被使用的方式):<note day="12" month="11" year="2002"to="Tove" from="Jani" heading="Reminder"body="Don't forget me this weekend!"></note>屬性規(guī)則的一個例外規(guī)則總有例外。有時候,我會向元素分配 ID 索引。這些 ID 索引可被用來訪問 XML 元素,其作用的方

40、式與 HTML 中的 NAME 屬性或者 ID 屬性是一樣的。這個例子向我們演示了這種情況:<messages><note id="p501"><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note><note id="p502"><to>

41、Jani</to><from>Tove</from><heading>Re: Reminder</heading><body>I will not!</body></note></messages>這個例子中的 ID 只是一個計數(shù)器,或者一個唯一的標識符,用來標示 XML 文件中不同的便簽,并不是便簽數(shù)據(jù)的組成部分。在此我們極力向您傳遞的理念是:元數(shù)據(jù)(有關數(shù)據(jù)的數(shù)據(jù))應當存儲為屬性,而數(shù)據(jù)本身應當存儲為元素。-擁有正確語法的 XML 是形式良好的 XML。通過某種 DTD 進行了驗證的

42、 XML 是合法的 XML。形式良好的 XML 文檔一個"形式良好"的 XML 文檔擁有正確的語法。一個"形式良好"的 XML 文檔會遵守前幾章介紹過的 XML 語法規(guī)則:&#8226; XML 文檔必須有根元素&#8226; XML 文檔必須有關閉標簽&#8226; XML 標簽對大小寫敏感&#8226; XML 元素必須被正確的嵌套&#8226; XML 屬性必須加引號<?xml version="1.0" encoding="ISO-8859-1"?><

43、;note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>驗證 XML 文檔一個合法的 XML 文檔同樣遵從某個 DTD。一個合法的 XML 文檔是"形式良好"的 XML 文檔,同樣遵守文檔類型定義(DTD)的語法規(guī)則: <?xml version="1.0" en

44、coding="ISO-8859-1"?><!DOCTYPE note SYSTEM "InternalNote.dtd"><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>XML DTDDTD 定義了 XML 文檔的合法元素。DTD 的作

45、用是定義 XML 文檔的合法構建模塊。它使用一系列合法的元素來定義文檔結構。您可以在我們的DTD 教程中獲得更多有關 DTD 的信息,以及如何驗證 XML 文檔的知識。XML SchemaXML Schema 是一個基于 XML 的 DTD 替代者。W3C 支持著一種名為 XML Schema 的標準作為替代 DTD 的可選項。您可以在我們的XML Schema 教程中獲得更多有關XML Schema的信息。一個通用的驗證器為了幫助您檢查 XML 文件的語法,我們創(chuàng)建了這個工具,以便您對任何 XML 文件進行語法檢查。 -XML 錯誤會終止您的程序XML 文檔中的錯誤會終止你的 XML 程序。

46、W3C 的 XML 規(guī)范聲明:如果 XML 文檔存在錯誤,那么程序就不應當繼續(xù)處理這個文檔。理由是,XML 軟件應當易于編寫,同時所有的 XML 文檔應當具有兼容性。如果使用 HTML,創(chuàng)建包含大量錯誤的文檔是有可能的(比如你忘記了某個結束標簽)。其中一個主要的原因是 HTML 瀏覽器相當臃腫,兼容性也很差,并且它們有自己的方式來確定當發(fā)現(xiàn)錯誤時文檔應該被顯示為什么樣子。使用 XML,這種情況不應當存在。對您的 XML 進行語法檢查 - 僅用于 IE 瀏覽器為了幫助您對XML進行語法檢查,我們使用微軟的XML解析器創(chuàng)建了一個XML驗證器。把您的XML粘貼到下面的文本框中,然后點擊"驗

47、證"按鈕來進行語法檢查。略對您的 XML 文件進行語法檢查 - 僅用于 IE 瀏覽器您可以通過把XML文件的URL鍵入下面的輸入框中,然后點擊"驗證"按鈕,來對某個在線的XML略-幾乎所有的主流瀏覽器均支持 XML 和 XSLT。Mozilla Firefox從 1.0.2 版本開始,F(xiàn)irefox 就已開始支持 XML 和 XSLT(包括 CSS)。MozillaMozilla 含有用于 XML 解析的 Expat,并支持顯示 XML + CSS。Mozilla 同時擁有對 Namespaces 的某些支持。Mozilla 同樣可做到對 XSLT 的執(zhí)行(XSL

48、T implementation)。Netscape自從版本 8 開始,Netscape 開始使用 Mozilla 的引擎,因此它對 XML / XSLT 的支持與 Mozilla 是相同的。Opera自從版本 9 開始,Opera 已經(jīng)擁有對 XML / XSLT(以及 CSS)的支持。版本 8 僅支持 XML + CSS。 Internet Explorer自從版本 6 開始,Internet Explorer 就開始支持 XML、Namespaces、CSS、XSLT 以及 XPath。 注釋:Internet Explorer 5 同樣擁有對 XML 的支持,但是 XSL 部分與 W3

49、C 的官方標準不兼容! -在下列瀏覽器中均可查看原始的 XML 文件:Mozilla、Firefox、Opera、Internet Explorer 以及 Netscape 6+。 不過,如果需要把 XML 顯示為網(wǎng)頁,那么您需要添加一些顯示信息。查看XML文件在 Firefox 和 Internet Explorer 中:打開 XML 文件 - XML 文檔將顯示為代碼顏色化的根以及子元素。通過點擊元素左側的加號或減號,可以展開或收起元素的結構。如需查看不帶有 + 和 - 符號的源代碼,請從瀏覽器菜單中選擇“查看源代碼”。 在 Netscape 6 中:打開 XML 文件,然后在 XML 文

50、件中右擊,并選擇查看“查看源代碼”。XML 文檔將顯示為代碼顏色化的根以及子元素。在 Opera 7 和 8 中:在 Opera 7,打開 XML 文件,然后在XML文件中右擊,選擇 "Frame" / "View Source"。XML 文檔將顯示為純文本。在 Opera 8 中:打開XML 文件,然后在 XML 文件中右擊,選擇 "Source"。XML 文檔將顯示為純文本。查看此 XML 文件: note.xml注釋:不要期望 XML 文件會像 HTML 文檔那樣被格式化!查看某個無效的 XML 文件如果瀏覽器打開了某個有錯誤的

51、 XML 文件,那么它會報告這個錯誤。請查看這個 XML 文件:note_error.xml其他的 XML 實例請查看這些 XML 文檔,這會有助于您建立對 XML 的感性認識。一個XML的 CD 目錄這是我父親的 CD 收藏,被存儲為XML數(shù)據(jù)(我猜可能是很老很無聊的題目. :-))一個 XML 的植物目錄來自園藝店的植物目錄,存儲為 XML 數(shù)據(jù)。一個簡單的菜單這是來自餐館的早餐菜單,存儲為 XML 數(shù)據(jù)。為什么 XML 會這樣顯示?XML 文檔不會攜帶有關如何顯示數(shù)據(jù)的信息。由于 XM L標簽由 XML 文檔的作者“發(fā)明”,瀏覽器無法確定像 <table> 這樣一個標簽究竟描

52、述一個 HTML 表格還是一個餐桌。在沒有任何有關如何顯示數(shù)據(jù)的信息的情況下,大多數(shù)的瀏覽器都會僅僅把 XML 文檔顯示為源代碼。在下面的章節(jié),我們會了解幾個有關這個顯示問題的解決方案,其中會使用 CSS、XSL、JavaScript 以及 XML 數(shù)據(jù)島。-使用 CSS 顯示您的 XML?使用 CSS 來格式化 XML 文檔是有可能的。下面的例子就是關于如何使用 CSS 樣式表來格式化某個XML文檔:這是 XML 文件:CD 目錄這是樣式表:CSS 文件最后,請查看效果:由 CSS 文件格式化的 CD 目錄下面是此XML文件的一個片斷。 第二行,<?xml-stylesheet typ

53、e="text/css" href="cd_catalog.css"?>,把這個 XML 文件鏈接到 CSS 文件:<?xml version="1.0" encoding="ISO-8859-1"?><?xml-stylesheet type="text/css" href="cd_catalog.css"?><CATALOG><CD><TITLE>Empire Burlesque</TITLE>

54、<ARTIST>Bob Dylan</ARTIST><COUNTRY>USA</COUNTRY><COMPANY>Columbia</COMPANY><PRICE>10.90</PRICE><YEAR>1985</YEAR></CD><CD><TITLE>Hide your heart</TITLE><ARTIST>Bonnie Tyler</ARTIST><COUNTRY>UK</CO

55、UNTRY><COMPANY>CBS Records</COMPANY><PRICE>9.90</PRICE><YEAR>1988</YEAR></CD>.</CATALOG>注釋:使用 CSS 格式化 XML 不能代表 XML 文檔樣式化的未來。XML 文檔應當使用 W3C 的 XSL 標準進行格式化!-通過使用 XSL,您可以向 XML 文檔添加顯示信息。使用 XSL 顯示 XMLXSL 是首選的 XML 樣式表語言。XSL 遠比 CSS 更加完善。使用 XSL 的方法之一是在瀏覽器顯示

56、XML 文件之前,先把它轉換為 HTML,正如以下的這些例子演示的那樣:查看 XML 文件,XSL 樣式表,查看結果。下面是此 XML 文件的一個片斷。 第二行,<?xml-stylesheet type="text/xsl" href="simple.xsl"?>,把這個 XML 文件鏈接到 XSL 文件:<?xml version="1.0" encoding="ISO-8859-1"?><?xml-stylesheet type="text/xsl" href

57、="simple.xsl"?><breakfast_menu><food><name>Belgian Waffles</name><price>$5.95</price><description>two of our famous Belgian Waffles</description><calories>650</calories></food></breakfast_menu>如果你需要學習更多有關 XSL 的知識,請訪

58、問我們的XSL 教程。-通過使用 Internet Explorer,非官方的 <xml> 標簽可用來創(chuàng)建 XML 數(shù)據(jù)島。嵌入 HTML 中的 XML 數(shù)據(jù)XML 數(shù)據(jù)島是嵌入 HTML 中的 XML 數(shù)據(jù)。下面我們?yōu)槟菔舅墓ぷ髟?;假設我們有下列的 XML 文檔("note.xml"):<?xml version="1.0" encoding="ISO-8859-1"?><note><to>Tove</to><from>Jani</from>&

59、lt;heading>Reminder</heading><body>Don't forget me this weekend!</body></note>然后,在 HTML 文檔中,您可以使用 <xml> 標簽將上面的 XML 文件嵌入進去。<xml> 標簽的 id 屬性定義了數(shù)據(jù)島的 ID,而 src 屬性指向被嵌入的 XML 文件:<html><body><xml id="note" src="note.xml"></xm

60、l></body></html>不過到此時,被嵌入的 XML 數(shù)據(jù)對用戶來說是不可見的。下一步的工作是,通過將數(shù)據(jù)島綁定至 HTML 元素,來格式化和顯示其中的數(shù)據(jù)。將數(shù)據(jù)島綁定至 HTML 元素下面的例子中,我們會向 HTML 文件中嵌入名為 "cd_catalog.xml" 的 XML 文件。查看 "cd_catalog.xml"。這是HTML文件:<html><body><xml id="cdcat" src="cd_catalog.xml">

61、</xml><table border="1" datasrc="#cdcat"><tr><td><span datafld="ARTIST"></span></td><td><span datafld="TITLE"></span></td></tr></table></body></html>例子解釋:<table> 標簽

62、的 datasrc 屬性可以把 HTML 格元素綁定到 XML 數(shù)據(jù)島。這個 datasrc 屬性會引用數(shù)據(jù)島的 id 屬性。<td> 無法被綁定至數(shù)據(jù)島,所以我們使用了 <span> 標簽。<span> 允許 datafld 屬性來引用需要顯示的XML元素。在本例中,datafld="ARTIST" 用來引用 XML 文件中的 <ARTIST> 元素,而 datafld="TITLE" 用來引用 XML 文件中的 <TITLE> 元素。當這個 XML 文件被讀取時,會針對每一個 <CD> 創(chuàng)建更多的行。如果您使用的 IE 瀏覽器是 5.0 或者更高的版本,那么您可以親自測試一下(TIY)。還有另外一個例子,演示 <thead>、<tbody> 以及 <tfoot>。-一個現(xiàn)實生活中的例子,向您展示 XML 如何攜帶數(shù)據(jù)。實例: XML 新聞XMLNews 是用于交換新聞和其他信息的規(guī)范。對新聞的供求雙方來

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論