App下載

XML跟HTML有哪些差別?XML的優(yōu)勢在哪?

猿友 2020-12-30 13:49:45 瀏覽數(shù) (4853)
反饋

一、XML導(dǎo)讀

XML 是獨(dú)立于軟件和硬件的信息傳輸工具。XML 是 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 中起到的作用不會亞于一直作為 Web 基石的 HTML 。XML 是各種利用程序之間進(jìn)行數(shù)據(jù)傳輸?shù)淖罱?jīng)常使用的工具,并且在信息存儲和描寫領(lǐng)域變得越來越流行。想要學(xué)習(xí)XML,可以通過XML.DOM教程

二、XML基本概述

XML(可擴(kuò)大標(biāo)記語言),標(biāo)準(zhǔn)通用標(biāo)記語言的子集,是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言。在電子計(jì)算機(jī)中,標(biāo)記指計(jì)算機(jī)所能理解的信息符號,通過此種標(biāo)記,計(jì)算機(jī)之間可以處理包括各種的信息比如文章等。

它可以用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標(biāo)記語言進(jìn)行定義的源語言。它非常適合萬維網(wǎng)傳輸,提供統(tǒng)一的方法來描寫和交換獨(dú)立于利用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。是 Internet 環(huán)境中跨平臺的、依賴于內(nèi)容的技術(shù),也是現(xiàn)今處理散布式結(jié)構(gòu)信息的有效工具。早在1998年,W3C 就發(fā)布了 XML1.0 規(guī)范,使用它來簡化 Internet 的文檔信息傳輸。

三、什么是XML?

  1. XML 是指可擴(kuò)大標(biāo)記語言(EXtensible Markup Language)
  2. XMl 是一種標(biāo)記語言,很類似 HTML (超文本標(biāo)記語言)
  3. XML 的設(shè)計(jì)主旨是傳輸數(shù)據(jù),而非顯示數(shù)據(jù)
  4. XML 標(biāo)簽沒有被預(yù)定義,您需要自行定義標(biāo)簽
  5. XML 被設(shè)計(jì)為具有自我描寫性
  6. XML 是 W3C 的推薦標(biāo)準(zhǔn)

四、XML與HTML的主要差異

  1. XML 和 HTML 為不同的目的而設(shè)計(jì)
  2. XML 被設(shè)計(jì)為傳輸和存儲數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的內(nèi)容
  3. HTML 被設(shè)計(jì)用來顯示數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的外觀
  4. HTML 旨在顯示信息,而 XML 旨在傳輸信息
  5. XML 不是對 HTML 的替換,XML 是對 HTML 的補(bǔ)充
  6. XML 不會替換 HTML,理解這一點(diǎn)很重要。在大多數(shù) Web 利用程序中,XML 用于傳輸數(shù)據(jù),而 HTML 用于格式化并顯示數(shù)據(jù)

五、為何需要 XML

  1. 解決了數(shù)據(jù)傳輸不規(guī)范的問題
  2. 可以非常好的描寫樹形結(jié)構(gòu)的事物
  3. 可以用作配置文件

六、沒有任何行動的 XML

XML 是不作為的?;蛟S這有點(diǎn)難以理解,但是 XML 不會做任何事情。XML 被設(shè)計(jì)用來結(jié)構(gòu)化、存儲和傳輸息。

我們在這里舉一個(gè)在記事本書寫的簡單例子來講明一下。

下面是一個(gè)書籍列表,存儲為 XML:

<?xml version="1.0" encoding="gb2312"?> 
<書籍列表> 
    <計(jì)算機(jī)書籍> 
        <bookname>XML利用大全</bookname> 
        <price>39.00</price> 
    </計(jì)算機(jī)書籍> 
    <計(jì)算機(jī)書籍> 
        <bookname>Java利用大全</bookname>
        <price>139.00</price> 
    </計(jì)算機(jī)書籍> 
    <計(jì)算機(jī)書籍>
        <bookname>Oracle利用大全</bookname> 
        <price>59.00</price>
    </計(jì)算機(jī)書籍>
</書籍列表>

上面的這條便簽具有自我描寫性。它具有標(biāo)題和留言,同時(shí)包括了發(fā)送者和接受者的信息。但是,這個(gè) XML 文檔依然沒有做任何事情。它僅僅是包裝在 XML 標(biāo)簽中單純的信息。我們需要編寫軟件或程序,才能傳送、接收和顯示出這個(gè)文檔。

七、XML僅僅是純文本

 XML 沒什么特別的。它僅僅是純文本而已。有能力處理純文本的軟件都可以處理 XML。不過,能夠讀懂 XML 的應(yīng)用程序可以有針對性地處理 XML 的標(biāo)簽。標(biāo)簽的功能性意義依賴于利用程序的特性。這里的內(nèi)容我們會在以后的內(nèi)容中逐步體會到 XML 標(biāo)簽的作用。

八、通過 XML 您可以發(fā)明自己的標(biāo)簽

上例中的標(biāo)簽沒有在任何 XML 標(biāo)準(zhǔn)中定義過(比如<bookname>和<price>等等)。這些標(biāo)簽是由文檔的創(chuàng)作者發(fā)明的。這是由于 XML 沒有預(yù)定義的標(biāo)簽。XML 允許創(chuàng)作者定義自己的標(biāo)簽和自己的文檔結(jié)構(gòu)。

在 HTML 中使用的標(biāo)簽(和 HTML 的結(jié)構(gòu))是預(yù)定義的。HTML 文檔只使用在 HTML 標(biāo)準(zhǔn)中定義過的標(biāo)簽(比如<p>,<h1>等等)。

九、XML樹結(jié)構(gòu)

我們在上面的書籍實(shí)例中可以看出 XML 文檔構(gòu)成了一種樹結(jié)構(gòu),它從“根部”開始,然后擴(kuò)大到“枝葉”。

一個(gè) XML 文檔實(shí)例

XML使用簡單的具有自我描寫性的語法:

<?xml version="1.0" encoding="UTF⑻"?> 
<note> 
    <to>George</to> 
    <from>John</from> 
    <heading>Reminder</heading> 
    <body>Don't forget the meeting!</body>
</note>

第一行是 XML 聲明。它定義 XML 的版本(1.0)和所使用的編碼(UTF-8,GBK等);

下一行描寫文檔的根元素(像在說:“本文檔是一個(gè)便簽”):<note>;

接下來4行描寫根的4個(gè)子元素(to、from、heading和body):
<to>George</to>
<from>John</from>

<heading>Reminder</heading>
<body>Don't forget the meeting!</body>;

最后一行定義根元素的結(jié)尾:</note>。


從本例可以假想,該 XML 文檔包括了John給George的一張便簽。

XML 具有出色的自我描寫性,你同意嗎?

XML 文檔構(gòu)成一種樹結(jié)構(gòu)

XML 文檔必須包括根元素。該元素是所有其他元素的父元素。

XML 文檔中的元素構(gòu)成了一棵文檔樹。這棵樹從根部開始,并擴(kuò)大到樹的最底端。

所有元素都可具有子元素:

<root> <child> <subchild>.....</subchild> </child> </root>

父、子和同胞等術(shù)語用于描寫元素之間的關(guān)系。父元素具有子元素。相同層級上的子元素成為同胞(兄弟或姐妹)。所有元素都可具有文本內(nèi)容和屬性(類似 HTML 中)。

實(shí)例:

微信截圖_20201230112330

上圖表示下面的 XML 中的一本書:

<bookstore>

    <book category="COOKING"> 

        <title lang="en">Everyday Italian</title> 

        <author>Giada De Laurentiis</author> 

        <year>2005</year> 

        <price>30.00</price> 

    </book> 

    <book category="CHILDREN"> 

        <title lang="en">Harry Potter</title> 

        <author>J K. Rowling</author> 

        <year>2005</year> 

        <price>29.99</price> 

    </book> 

    <book category="WEB"> 

        <title lang="en">Learning XML</title> 

        <author>Erik T. Ray</author> 

        <year>2003</year> 

        <price>39.95</price> 

    </book> 

</bookstore>

例子中的根元素是<bookstore>。文檔中的所有<book>元素都被包括在<bookstore>中。<book>元素有 4 個(gè)子元素:

<title>、< author>、<year>、<price>。

十、XML用處

XML 經(jīng)常使用于簡化數(shù)據(jù)的存儲和共享

(1)XML 把數(shù)據(jù)從 HTML 分離

如果你需要在 HTML 文檔中顯示動態(tài)數(shù)據(jù),那末每當(dāng)數(shù)據(jù)改變時(shí)將花費(fèi)大量的時(shí)間來編輯 HTML。通過 XML,數(shù)據(jù)能夠存儲在獨(dú)立的XML 文件中。這樣你就能夠?qū)W⒂谑褂?HTML 進(jìn)行布局和顯示,并確保修改底層數(shù)據(jù)不再需要對 HTML 進(jìn)行任何的改變。通過使用幾行JavaScript,你就能夠讀取一個(gè)外部 XML 文件,然后更新 HTML 中的數(shù)據(jù)內(nèi)容。

(2)XML簡化數(shù)據(jù)同享

在真實(shí)的世界中,計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)使用不兼容的格式來存儲數(shù)據(jù)。XML 數(shù)據(jù)以純文本格式進(jìn)行存儲,因此提供了一種獨(dú)立于軟件和硬件的數(shù)據(jù)存儲方法。這讓創(chuàng)建不同利用程序可以同享的數(shù)據(jù)變得更加容易。

(3)XML簡化數(shù)據(jù)傳輸

通過 XML,可以在不兼容的系統(tǒng)之間輕松地交換數(shù)據(jù)。對開發(fā)人員來講,其中一項(xiàng)最費(fèi)時(shí)的挑戰(zhàn)一直是在因特網(wǎng)上的不兼容系統(tǒng)之間交換數(shù)據(jù)。由于可以通過各種不兼容的利用程序來讀取數(shù)據(jù),以 XML 交換數(shù)據(jù)下降了這類復(fù)雜性。

(4)XML簡化平臺的變更

升級到新的系統(tǒng)(硬件或軟件平臺),總是非常費(fèi)時(shí)的。必須轉(zhuǎn)換大量的數(shù)據(jù),不兼容的數(shù)據(jù)常常會丟失。XML 數(shù)據(jù)以文本格式存儲。這使得 XML 在不損失數(shù)據(jù)的情況下,更容易擴(kuò)大或升級到新的操作系統(tǒng)、新利用程序或新的瀏覽器。

(5)XML使您的數(shù)據(jù)更有用

由于 XML 獨(dú)立于硬件、軟件和利用程序,XML 使您的數(shù)據(jù)更可用,也更有用。不同的利用程序都能夠訪問您的數(shù)據(jù),不單單在 HTML 頁中,也能夠從 XML 數(shù)據(jù)源中進(jìn)行訪問。通過 XML,您的數(shù)據(jù)可供各種瀏覽裝備使用(手持的計(jì)算機(jī)、語音裝備、新聞瀏覽器等),還可以供盲人或其他殘障人士使用。

(6)XML用于創(chuàng)建新的Internet語言

很多新的Internet語言是通過XML創(chuàng)建的,其中的例子包括:

  • XHTML - 最新的HTML版本
  • WSDL - 用于描寫可用的web service
  • WAP 和 WML - 用于手持裝備的標(biāo)記語言
  • RSS - 用于RSS feed的語言
  • RDF 和 OWL - 用于描寫資源和本體
  • SMIL - 用于描寫針針對web的多媒體

您還可以通過XML實(shí)例去實(shí)踐并掌握

以及XML測驗(yàn)評估您的學(xué)習(xí)狀況


0 人點(diǎn)贊