XML 指擴(kuò)展標(biāo)記語(yǔ)言_第1頁(yè)
XML 指擴(kuò)展標(biāo)記語(yǔ)言_第2頁(yè)
XML 指擴(kuò)展標(biāo)記語(yǔ)言_第3頁(yè)
XML 指擴(kuò)展標(biāo)記語(yǔ)言_第4頁(yè)
XML 指擴(kuò)展標(biāo)記語(yǔ)言_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

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

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

4、存儲(chǔ)數(shù)據(jù)。不過(guò),假如我們希望數(shù)據(jù)更加易用,那么可以將數(shù)據(jù)存儲(chǔ)于 XML 文件之中。針對(duì) HTML 和 XML 的行為如何使用 CSS 行為選擇器來(lái)創(chuàng)建動(dòng)態(tài)內(nèi)容。XML 技術(shù)與 XML 相關(guān)的技術(shù)。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 技能!= XML 被設(shè)計(jì)用來(lái)描述數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的內(nèi)容。HTML 被設(shè)計(jì)用來(lái)顯示數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的外觀(guān)。應(yīng)該掌握的基礎(chǔ)知識(shí):在您繼續(xù)學(xué)習(xí)之前,

5、需要對(duì)以下知識(shí)有基本的了解:• HTML / XHTML• JavaScript 或 VBScript如果您希望首先學(xué)習(xí)這些項(xiàng)目,請(qǐng)?jiān)谖覀兊?首頁(yè) 訪(fǎng)問(wèn)這些教程。什么是XML?• XML 指可擴(kuò)展標(biāo)記語(yǔ)言(EXtensible Markup Language)• XML 是一種標(biāo)記語(yǔ)言,很類(lèi)似 HTML• XML 被設(shè)計(jì)用來(lái)描述數(shù)據(jù)• XML 標(biāo)簽沒(méi)有被預(yù)定義。您需要自行定義標(biāo)簽。• XML 使用文件類(lèi)型聲明(DTD)或者 XML Schema 來(lái)描述數(shù)據(jù)

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

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

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

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

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

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

12、方案。這使得不同的應(yīng)用程序都可以更容易地創(chuàng)建數(shù)據(jù)。也更容易把某個(gè)系統(tǒng)擴(kuò)展或更新為新的操作系統(tǒng)、服務(wù)器、應(yīng)用程序以及瀏覽器。XML 可用于存儲(chǔ)數(shù)據(jù)通過(guò)使用 XML,純文本文件可用于存儲(chǔ)數(shù)據(jù)。也可使用 XML 將數(shù)據(jù)存儲(chǔ)于文件或數(shù)據(jù)庫(kù)之中??梢跃帉?xiě)從數(shù)據(jù)倉(cāng)庫(kù)中存取信息的應(yīng)用程序,而普通的應(yīng)用程序就可被用來(lái)顯示這些數(shù)據(jù)。XML 使您的數(shù)據(jù)更有用通過(guò)使用 XML,您的數(shù)據(jù)可供更多的用戶(hù)使用。由于 XML 獨(dú)立于硬件、軟件以及應(yīng)用程序,我們可以將自己的數(shù)據(jù)應(yīng)用于更多的應(yīng)用程序,而不僅僅限于 HTML 瀏覽器。其他的客戶(hù)端以及應(yīng)用程序可將 XML 文件作為數(shù)據(jù)源來(lái)訪(fǎng)問(wèn),就像它們正在訪(fǎng)問(wèn)某個(gè)數(shù)據(jù)庫(kù)一樣。您的

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

14、致了。-XML 的語(yǔ)法規(guī)則既很簡(jiǎn)單,又很?chē)?yán)格。這些規(guī)則很容易學(xué)習(xí),也很容易使用。正因?yàn)槿绱?,?chuàng)建可讀取及操作 XML 的軟件不是一件難事。一個(gè) XML 文檔的例子X(jué)ML 使用一種可自我描述的簡(jiǎn)單的語(yǔ)法。<?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 的版本和文檔中使用的字符編碼。在這個(gè)例子中,遵守的是 XML 1.0 規(guī)范,并使用了 ISO-8859-1 字符集。接下來(lái)的一行描述了文檔的根元素(就像是在說(shuō):“本文檔是一個(gè)便簽”):<note>接下來(lái)的 4 行描述了根元素的 4 個(gè)子元素(to, from, heading, 以及 body):<to>Tove</to><from>Jani</from><heading>Re

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

17、another paragraph在 XML 中,所有的元素都要有關(guān)閉標(biāo)簽:<p>This is a paragraph</p><p>This is another paragraph</p>注釋?zhuān)耗苍S已經(jīng)從上面的例子中注意到 XML 聲明沒(méi)有關(guān)閉標(biāo)簽。這不是錯(cuò)誤。聲明不屬于XML本身的組成部分。它不是 XML 元素,也不需要關(guān)閉標(biāo)簽。XML 標(biāo)簽對(duì)大小寫(xiě)敏感和 HTML 不同,XML 標(biāo)簽對(duì)大小寫(xiě)敏感。在 XML 中,標(biāo)簽 <Letter> 和標(biāo)簽 <letter> 是不同的。所以必須使用相同的大小寫(xiě)打開(kāi)并關(guān)閉標(biāo)簽:&

18、lt;Message>這是錯(cuò)誤的。</message><message>這是正確的。</message>XML 必須被正確地嵌套不正確的標(biāo)簽嵌套對(duì) XML 是沒(méi)有意義的。在 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 必須包含可定義根元素的單一標(biāo)簽對(duì)。所有其他的元素都必須處于這個(gè)根元素內(nèi)部。所有的元素均可擁有子元素。子元素必須被正確地嵌套于它們的父元素內(nèi)部:<root><child><subchild>.</subchild></child></root>XML 的屬性值須加引號(hào)在 XML 中,省略屬性值兩旁的引號(hào)是非法的。與 HTML 類(lèi)似,XML 也可擁有屬性(名稱(chēng)/值的對(duì))。在 XML 中,XML 的屬性值須加引號(hào)。請(qǐng)研究下面的兩個(gè) XML 文檔。第一個(gè)是錯(cuò)誤的,第二個(gè)是正確的:<?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>在第一個(gè)文檔中,日期屬性沒(méi)有加引號(hào)。這是正確的:date="12/11/2002"。這是錯(cuò)誤的:date=12/11/2002。在 XML 中,空格會(huì)被保留。在 XML 中,空格不會(huì)被截掉。這與 HTML 不同。在 HTML 中,像這樣的一個(gè)句子:Hello my name is Tove,會(huì)顯示為這樣:Hello my name is Tove,這是由于 HTML 會(huì)把多個(gè)連續(xù)的空格字符裁減為一個(gè)。在 XML 中,CR / LF 會(huì)被轉(zhuǎn)換為 LF在 XML 中,一個(gè)新的行(即換行)被存儲(chǔ)為 LF(Line F

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

23、殊之處。它只是一些純文本外加括在角形括號(hào)中的標(biāo)簽而已。可處理純文本文件的軟件也可以處理 XML。在一個(gè)簡(jiǎn)單的文本編輯器中,XML 標(biāo)簽也可被顯示出來(lái),不會(huì)被特殊地對(duì)待。在可識(shí)別 XML 的(XML-aware)應(yīng)用程序中,XML 標(biāo)簽會(huì)被專(zhuān)門(mén)處理。根據(jù)不同的應(yīng)用程序種類(lèi),這些標(biāo)簽也許是可見(jiàn)或不可見(jiàn)的,又或許擁有某種功能意義。-XML 元素是可擴(kuò)展的,它們之間存在著某些關(guān)系。XML 元素須遵守一些簡(jiǎn)單的命名規(guī)則。XML 元素是可擴(kuò)展的XML 元素是可被擴(kuò)展,以攜帶更多的信息。請(qǐng)看下面這個(gè)XML標(biāo)簽例子:<note><to>Tove</to><from&g

24、t;Jani</from><body>Don't forget me this weekend!</body></note>讓我們?cè)O(shè)想一下,我們創(chuàng)建了一個(gè)應(yīng)用程序,可將 <to>、<from> 以及 <body> 元素提取出來(lái),并產(chǎn)生以下的輸出:MESSAGETo: ToveFrom: JaniDon't forget me this weekend!想象一下,之后這個(gè) XML 文檔作者又向這個(gè)文檔添加了一些額外的信息:<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>那么這個(gè)應(yīng)用程序會(huì)中斷或崩潰嗎?不會(huì)。這個(gè)應(yīng)用程序仍然可以找到 XML 文檔中的 <to>、<from> 以及 <body> 元素,并產(chǎn)生同樣的輸出: XML 文檔是可擴(kuò)展的。XML 元素之間是有關(guān)系的元素之間有父與子

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

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

28、素,這是因?yàn)樗鼈兌紦碛邢嗤母改浮?元素?fù)碛袃?nèi)容元素可以擁有不同的內(nèi)容類(lèi)型。一個(gè) XML 元素由(且包括)元素的開(kāi)始標(biāo)簽起始,到(且包括)元素的結(jié)束標(biāo)簽終止。一個(gè)元素可以擁有元素內(nèi)容、混合型內(nèi)容、簡(jiǎn)易內(nèi)容或者空內(nèi)容。元素也可以擁有屬性。在上面的例子中,book 有元素內(nèi)容,因?yàn)樗似渌脑亍hapter 擁有混合型內(nèi)容,因?yàn)榧窗谋?,也包含其他的元素。para 擁有簡(jiǎn)易內(nèi)容(或文本內(nèi)容),因?yàn)樗鼉H包含文本。prod 擁有空內(nèi)容,因?yàn)樗鼪](méi)有攜帶信息。在上面的例子中,僅有 prod 元素?fù)碛袑傩浴C麨?id 的屬性的值為 "33-657"。名為 medea 的屬性的值

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

30、uot;。比方說(shuō),如果您將某個(gè)元素命名為"first-name",那么當(dāng)您的軟件試圖從first段來(lái)提取名稱(chēng)時(shí)可能會(huì)出現(xiàn)混亂的局面?;蛘呷绻鷮⒛硞€(gè)元素命名為"",您的軟件也許會(huì)認(rèn)為"name"是"first"對(duì)象的一個(gè)屬性。元素名稱(chēng)可以是你希望的任何長(zhǎng)度,但是也不要太夸張。名稱(chēng)應(yīng)當(dāng)比較簡(jiǎn)短,比如:<book_title>,而不是:<the_title_of_the_book>。XML 文檔經(jīng)常有一個(gè)對(duì)應(yīng)的數(shù)據(jù)庫(kù),其中的域會(huì)對(duì)應(yīng) XML 文檔中的某個(gè)元素。有一個(gè)實(shí)用的經(jīng)驗(yàn)

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

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

33、某人的性別,person 標(biāo)簽可以這樣寫(xiě): <person sex="female">或者這樣也可以:<person sex='female'>注釋?zhuān)喝绻麑傩灾当旧戆p引號(hào),那么有必要使用單引號(hào)包圍它,就像這個(gè)例子:<gangster name='George "Shotgun" Ziegler'>注釋?zhuān)喝绻麑傩灾当旧戆瑔我?hào),那么有必要使用雙引號(hào)包圍它,就像這個(gè)例子:<gangster name="George 'Shotgun' Ziegler&q

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

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

36、;/from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>第二個(gè)例子中使用了元素:<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>第三個(gè)例子中使用了擴(kuò)展的元素(這是我的最?lèi)?ài)):<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>避免使用屬性?我們應(yīng)當(dāng)避免使用屬性嗎?因使用屬性而引起的一些問(wèn)題:&#8226; 屬性無(wú)法包含多個(gè)值(子元素可以)&#8226; 屬性不易擴(kuò)展(為未來(lái)的變化)&#8226; 屬性無(wú)法描述結(jié)構(gòu)(子元素可以)&#8226; 屬性更難被編程代碼處理&#8226; 不易通過(guò)某個(gè) DTD 對(duì)屬性值進(jìn)行測(cè)試 - DTD 用來(lái)定義 XML 文檔的合法元素如果您使用屬性作為數(shù)據(jù)的容器,那么就會(huì)造就難以閱讀和維護(hù)的文檔。請(qǐng)盡量使用元素來(lái)描述數(shù)據(jù)。而僅僅使用屬性來(lái)提供與數(shù)據(jù)無(wú)

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

40、式與 HTML 中的 NAME 屬性或者 ID 屬性是一樣的。這個(gè)例子向我們演示了這種情況:<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>這個(gè)例子中的 ID 只是一個(gè)計(jì)數(shù)器,或者一個(gè)唯一的標(biāo)識(shí)符,用來(lái)標(biāo)示 XML 文件中不同的便簽,并不是便簽數(shù)據(jù)的組成部分。在此我們極力向您傳遞的理念是:元數(shù)據(jù)(有關(guān)數(shù)據(jù)的數(shù)據(jù))應(yīng)當(dāng)存儲(chǔ)為屬性,而數(shù)據(jù)本身應(yīng)當(dāng)存儲(chǔ)為元素。-擁有正確語(yǔ)法的 XML 是形式良好的 XML。通過(guò)某種 DTD 進(jìn)行了驗(yàn)證的

42、 XML 是合法的 XML。形式良好的 XML 文檔一個(gè)"形式良好"的 XML 文檔擁有正確的語(yǔ)法。一個(gè)"形式良好"的 XML 文檔會(huì)遵守前幾章介紹過(guò)的 XML 語(yǔ)法規(guī)則:&#8226; XML 文檔必須有根元素&#8226; XML 文檔必須有關(guān)閉標(biāo)簽&#8226; XML 標(biāo)簽對(duì)大小寫(xiě)敏感&#8226; XML 元素必須被正確的嵌套&#8226; XML 屬性必須加引號(hào)<?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>驗(yàn)證 XML 文檔一個(gè)合法的 XML 文檔同樣遵從某個(gè) DTD。一個(gè)合法的 XML 文檔是"形式良好"的 XML 文檔,同樣遵守文檔類(lèi)型定義(DTD)的語(yǔ)法規(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 文檔的合法構(gòu)建模塊。它使用一系列合法的元素來(lái)定義文檔結(jié)構(gòu)。您可以在我們的DTD 教程中獲得更多有關(guān) DTD 的信息,以及如何驗(yàn)證 XML 文檔的知識(shí)。XML SchemaXML Schema 是一個(gè)基于 XML 的 DTD 替代者。W3C 支持著一種名為 XML Schema 的標(biāo)準(zhǔn)作為替代 DTD 的可選項(xiàng)。您可以在我們的XML Schema 教程中獲得更多有關(guān)XML Schema的信息。一個(gè)通用的驗(yàn)證器為了幫助您檢查 XML 文件的語(yǔ)法,我們創(chuàng)建了這個(gè)工具,以便您對(duì)任何 XML 文件進(jìn)行語(yǔ)法檢查。 -XML 錯(cuò)誤會(huì)終止您的程序XML 文檔中的錯(cuò)誤會(huì)終止你的 XML 程序。

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

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

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

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

50、件中右擊,并選擇查看“查看源代碼”。XML 文檔將顯示為代碼顏色化的根以及子元素。在 Opera 7 和 8 中:在 Opera 7,打開(kāi) XML 文件,然后在XML文件中右擊,選擇 "Frame" / "View Source"。XML 文檔將顯示為純文本。在 Opera 8 中:打開(kāi)XML 文件,然后在 XML 文件中右擊,選擇 "Source"。XML 文檔將顯示為純文本。查看此 XML 文件: note.xml注釋?zhuān)翰灰谕?XML 文件會(huì)像 HTML 文檔那樣被格式化!查看某個(gè)無(wú)效的 XML 文件如果瀏覽器打開(kāi)了某個(gè)有錯(cuò)誤的

51、 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ù)(我猜可能是很老很無(wú)聊的題目. :-))一個(gè) XML 的植物目錄來(lái)自園藝店的植物目錄,存儲(chǔ)為 XML 數(shù)據(jù)。一個(gè)簡(jiǎn)單的菜單這是來(lái)自餐館的早餐菜單,存儲(chǔ)為 XML 數(shù)據(jù)。為什么 XML 會(huì)這樣顯示?XML 文檔不會(huì)攜帶有關(guān)如何顯示數(shù)據(jù)的信息。由于 XM L標(biāo)簽由 XML 文檔的作者“發(fā)明”,瀏覽器無(wú)法確定像 <table> 這樣一個(gè)標(biāo)簽究竟描

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

53、e="text/css" href="cd_catalog.css"?>,把這個(gè) 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>注釋?zhuān)菏褂?CSS 格式化 XML 不能代表 XML 文檔樣式化的未來(lái)。XML 文檔應(yīng)當(dāng)使用 W3C 的 XSL 標(biāo)準(zhǔn)進(jìn)行格式化!-通過(guò)使用 XSL,您可以向 XML 文檔添加顯示信息。使用 XSL 顯示 XMLXSL 是首選的 XML 樣式表語(yǔ)言。XSL 遠(yuǎn)比 CSS 更加完善。使用 XSL 的方法之一是在瀏覽器顯示

56、XML 文件之前,先把它轉(zhuǎn)換為 HTML,正如以下的這些例子演示的那樣:查看 XML 文件,XSL 樣式表,查看結(jié)果。下面是此 XML 文件的一個(gè)片斷。 第二行,<?xml-stylesheet type="text/xsl" href="simple.xsl"?>,把這個(gè) 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>如果你需要學(xué)習(xí)更多有關(guān) XSL 的知識(shí),請(qǐng)?jiān)L

58、問(wèn)我們的XSL 教程。-通過(guò)使用 Internet Explorer,非官方的 <xml> 標(biāo)簽可用來(lái)創(chuàng)建 XML 數(shù)據(jù)島。嵌入 HTML 中的 XML 數(shù)據(jù)XML 數(shù)據(jù)島是嵌入 HTML 中的 XML 數(shù)據(jù)。下面我們?yōu)槟菔舅墓ぷ髟?;假設(shè)我們有下列的 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> 標(biāo)簽將上面的 XML 文件嵌入進(jìn)去。<xml> 標(biāo)簽的 id 屬性定義了數(shù)據(jù)島的 ID,而 src 屬性指向被嵌入的 XML 文件:<html><body><xml id="note" src="note.xml"></xm

60、l></body></html>不過(guò)到此時(shí),被嵌入的 XML 數(shù)據(jù)對(duì)用戶(hù)來(lái)說(shuō)是不可見(jiàn)的。下一步的工作是,通過(guò)將數(shù)據(jù)島綁定至 HTML 元素,來(lái)格式化和顯示其中的數(shù)據(jù)。將數(shù)據(jù)島綁定至 HTML 元素下面的例子中,我們會(huì)向 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> 標(biāo)簽

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論