為什麼要學xml ?(http://bbs.dvbbs.net/dispbbs.asp?BoardID=1&ID=820814)

來源:互聯網
上載者:User
 [分享]為什麼要學xml ?

這兩天我正學xml,有些朋友也感興趣,但不知道xml是幹什麼的,我轉些材料過來,希望能有更多的朋友加入進來,我們一起來學習這們技術

呵呵,看到底有多少人感興趣,會貼吧!讓我們一起努力!

<!-- 本文內容 -->

1.2.1 仍從HTML說起

    

   可能大部分網頁製作者對HTML仍然情有獨鐘,一聽說要有一個新的語言來代替它,本能地先想為老朋友辯護兩句。HTML怎麼啦?它不是挺好的嗎?

不錯,說起當今世界互連網的蓬勃發展,HTML的確立下了赫赫戰功。可是,HTML自身的特點使它蘊藏了許多危機,隨著它不斷的發展,這些危機不但沒有減弱,反而越來越突出,甚至已然成為HTML繼續發展應用的障礙。時至今日,連HTML經過幾年來廣泛應用所贏得的資深聲譽也無法掩飾其日益深刻的危機了。

HTML制定之初的本意在於根據資訊的含義來為它們置標,而沒有具體規定它們應該如何在瀏覽器中顯示。回憶一下,在HTML的早期版本中,<title>代表題目,<h1>代表第一層的大標題,<h2>代表第二層的大標題,<em>、<strong>代表強調的文本,<address>代表作者的聯絡資訊。至於這些題目、各層大標題應該如何顯示,應該由瀏覽器決定,因為HTML標準的制定者相信,比起網頁的製作人員,瀏覽器更瞭解使用者的偏好和使用的瀏覽環境。顯然網頁的製作者事先並不知道哪些使用者決定不顯示圖片,又有哪些使用者喜歡大一些的字型,只有瀏覽器才能保證為這些特殊使用者提供良好的支援。

不幸的是,瀏覽器的開發人員同樣也不大瞭解這些特殊使用者的偏好,不僅如此,他們也不大想瞭解這些資訊。相反,他們引入了自己定義的一些標籤和屬性,用這些新的標籤來專門描述顯示格式,比如標籤<font>、<center>、<bgcolor>等等。瀏覽器廠商還開發了自己的網頁製作軟體,如Netscape開發的Netscape Composer,微軟開發的Frontpage等等。這些所見即所得 (WYSIWYG)的網頁製作工具自動產生HTML檔案,而這些HTML檔案更是忽略了標籤的語意資訊,而幾乎完全將它們作為格式表現的工具。比如說,現在關於表格的標籤,如<table>、<tr>、<td>等,不僅可以代表表格中不同行、列的資訊,還可能專門用於網頁布局。這樣一來,HTML越來越側重於資訊的表示,標籤中原本就很微弱的資訊描述的含義也被削弱了。最後,HTML終於演變為專門用於Netscape和Microsoft IE兩大瀏覽器的頁面顯示語言。

可能你覺得雖然某些有特殊癖好使用者的要求得不到滿足,但畢竟對大多數人而言,瀏覽頁面最基本的問題——顯示問題,還是解決了。而且,有了這些專門的顯示標籤,這個問題還是解決得不錯嘛!其實不然。瀏覽器生產廠家在激烈的市場競爭中,為了顯示自己的獨特性,IE和Netscape都給HTML加入了一些特殊的標記,以便為自己的瀏覽器增加一些特殊的顯示效果。日益增多的標籤不但使HTML越來越龐大,瀏覽器的開發越來越複雜,還降低了不同瀏覽器之間的相容性。比如說你的網頁是針對IE5瀏覽器、800*600螢幕解析度來製作的,那麼在640*480的螢幕上觀看的效果就會大打折扣,而如果放到Netscape瀏覽器中,顯示效果與最初的設計構想甚至會大相徑庭。

不僅如此,儘管HTML的標籤越來越多,其顯示力卻還遠遠不夠。如果你希望非常精確地表現一些你自己的資料,可能你需要一些現在在HTML中尚不存在的標籤。比方說,你是一個化學家,你可能需要表現化學分子式中的一些特別的符號。又比方說,你是一個飛機設計師,你希望能夠表現飛機的動力引擎。可對於這些,HTML都望塵莫及。要想滿足各行各業對顯示的不同要求,顯然需要大量的標籤,這無疑給當今日益臃腫的HTML雪上加霜。

問題還不止這些,現在HTML內部結構的條理性越來越差。你寫的HTML檔案,甚至是那些專門的所見即所得 (WYSIWYG)工具自動產生的HTML檔案,可能在文法上會錯誤百出,不過沒關係,瀏覽器照樣能讀它。HTML中的檔案可以不具有嵌套關係,比如<h1><h2></h1></h2>,也可以不配對出現,只有<h1>而沒有</h1>,更不會要求你在使用標籤<h2></h2>的外面一定要保證有<h1></h1>,(在語意上難道不該先有一級標題,再有二級標題嗎?)。乍一看,這彷彿對網頁製作者而言是個福音,可對瀏覽器的開發人員就是件頭痛的事了,他們不得不把大量的精力耗費在文法錯誤的包容上,相應的,瀏覽器的程式也要加大,甚至犧牲瀏覽時的時間效率和空間效率。

另外,還更有一批對HTML無可奈何的人,那就是搜尋引擎的開發人員。因為從HTML的標籤本身,他們幾乎得不到任何有用的資訊。如果你要到網上去找出世界上所有關於XML的書籍的價錢,天啊,搜尋引擎要被你忙壞了。它要分辨網路上哪些“XML”欄位對應的是書名,又要知道這些書名所對應的價錢。可能你會說,在我們圖書館的網頁中,這不是已經辦到了嗎?問題就在這裡,圖書館是根據內部的資料庫來進行搜尋的,資料庫中的各個欄位都有著明確的含義。但搜尋引擎在網上是根據HTML檔案來進行搜尋的,那些原本條理清晰、層次分明的資料庫的內容在HTML檔案中早就被各種各樣的標籤搞得混亂不堪,而搜尋引擎則不得不在這些混亂的內容中大海撈針!

HTML的這許多弊病,使它進入了一種“山重水複疑無路”的境地。那麼,XML又是怎樣帶來了“柳暗花明又一村”呢?

當今世界互連網的蓬勃發展,HTML的確立下了赫赫戰功,我們不能抹殺它的功勞。接著往下看......

[此貼子已經被作者於2004-10-7 10:49:14編輯過]

----------------------------------------------
http://alonglee.net 專做資料收集 有空來看看

     獎勵金幣:0   扣除金幣:0

2004-10-7 9:25:00
動網主機續約免費擴容50%的空間  [文章操作] [使用道具]



  alonglee

  
  
  頭銜:我說的可能是對的
  等級:俠之大者
  文章:597
  積分:1766
  註冊:2003-7-13

               第 2 樓

 

          
<!-- 本文內容 -->

1.2.2 XML的第一大優勢——自由民主的網上世界

    

說起來,XML彷彿充當著自由宣言的角色,它打破了標記定義的壟斷,將網上世界變為一個更加自由民主的世界。

不知你是否清楚在沒有XML的時候,要想定義一個置標語言並推廣利用它是何等困難。一方面,如果你制定了一個新的語言而期望它能生效,你需要把這個標準提交給相關的組織,例如W3C,等待它接受並正式公布這個標準,經過幾輪的評定、修改、再評定、再修改,等到你的置標語言終於熬到成為一個正式推薦標準,可能幾年的時間都已匆匆而過了。另一方面,為了讓你的這套標記得到廣泛應用,你必須為它配備瀏覽工具。這樣,你就不得不去遊說各個瀏覽器廠商接收並支援你的標記,或者索性自己開發一個新的瀏覽器去與現有的瀏覽器競爭,無論哪個辦法,都令人望而卻步!

現在有了XML,你終於可以自由地制定你自己的置標語言,而不必再念念不忘微軟、Netscape、W3C的首肯了。

當然,別以為XML的主要目的真的僅僅是為了提供一種祥和的氣氛,體現新時代的自由平等的主旋律,它在網路應用中有著確確實實的作用。大家都知道,各個不同的行業可能會有一些獨特的要求。比如說,化學家需要化學公式中的一些特殊符號,建築設計圖紙中需要某些特製的標記,音樂家需要音符,這些都需要單獨的標記。但是,其它網頁設計者則用不著這些記號,也不需要這些標記。XML好就好在它允許各個組織、個人建立適合他們自己需要的標記庫,並且,這個標記庫可以迅速地投入使用。

不僅如此,隨著當今世界越來越多元化,要想定義一套適合各行各業、能夠普遍應用的標記既困難,也沒有必要。XML允許各個不同的行業根據自己獨特的需要制定自己的一套標記,但它並不強迫所有瀏覽器都能處理這些成千上萬個千奇百怪的標記,同樣也不要求置標語言的制定者制定出一個非常詳盡非常全面的語言從而適合各個行業各個領域的應用。比起那些追求大而全的置標語言的做法,這種具體問題具體分析的方法實際上更有助於置標語言的發展。

“從網路使用之初,我們一直在所有檔案中都使用近乎相同的格式,HTML格式...使用具有固定文法的固定加成集具有一定的好處,即簡單性。但是,HTML非常有限,網頁設計者希望能夠對頁面的表現能力具有更多的控制,這就需要求助於XML。

——Norman Walsh”

實際上,現在許多行業、機構都利用XML定義了自己的置標語言。比較早而且比較典型的是下面兩個執行個體:

  1. 化學置標語言CML (Chemistry Markup Language),by Peter Murray-Rust
  2. 數學置標語言MathML (Mathematical Markup Language) 1.0 Specification, W3C Recommendation 07-April-1998

好了,上面我們說了很多關於XML如何突破HTML這種基本標記集的話題。其實,這個優勢還遠遠不是XML的最大優勢。那麼,它的最大優勢又是什麼呢?

----------------------------------------------
http://alonglee.net 專做資料收集 有空來看看

     獎勵金幣:0   扣除金幣:0

2004-10-7 9:25:00
動網論壇型主機,高性價比的支援  [文章操作] [使用道具]



  alonglee

  
  
  頭銜:我說的可能是對的
  等級:俠之大者
  文章:597
  積分:1766
  註冊:2003-7-13

               第 3 樓

 
<!-- 以下為主體內容 -->

                 
<!-- 本文內容 -->

1.2.3 XML的第二大優勢——超越于格式之上

XML的最大能量來源於它不僅允許你定義自己的一套標記,而且這些標記不必僅限於對於顯示格式的描述。XML允許你根據各種不同的規則來制定標記,比如根據商業規則,根據資料描述甚至根據資料關係來制定標記。
可能你還沒有覺得這有什麼好處。那好,還記得前面兩節中那個關於F公司的客戶列表的例子嗎?現在,我們再來一起對兩個不同的檔案進行一個詳細的比較。

當這個檔案使用HTML語言寫時,檔案的樣子如下:

<UL>
<LI>張三</LI>
<UL>
<LI>使用者ID: 001</LI>
<LI>公司: A公司</LI>
<LI>EMAIL: zhang@aaa.com</LI>
<LI>電話: (010)62345678</LI>
<LI>地址: 五街1234號</LI>
<LI>城市: 北京市</LI>
<LI>省份: 北京</LI>
<LI>ZIP: 100001</LI>
</UL>

<LI>李四</LI>
<UL>
<LI>ID: 002</LI>
<LI>公司: B公司</LI>
<LI>EMAIL: li@bbb.org</LI>
<LI>電話: (021)87654321</LI>
<LI>地址: 南京路9876號</LI>
<LI>城市: 上海市</LI>
<LI>省份: 上海</LI>
<LI>ZIP: 200002</LI>
</UL>
</UL>

儘管這也是一個儲存、顯示資料的可行的方法,它的效率和能力卻非常有限。不知你是否已有同感,使用偏重於表現的HTML來置標你的資料有很多潛在的問題。我們至少可以看到以下三個嚴重的問題:

  1. 顯示方式內嵌於資料之中
    可以看到,現在這些資料是用列表的形式來表示的。如果突然有一天,你的老闆要求你用表格來表示這些資料,那麼你不得不重新編碼所有這樣的HTML檔案!天啊,這可能意味著幾十頁幾百頁要推翻重來啊!
  2. 在這些資料中尋找資訊非常困難
    如果有一天,你需要從這個網頁中找到所有北京市客戶的資訊,你該怎麼辦?顯然,如果你不打算手工尋找的話,你要編一個指令碼程式,譬如JavaScript,VBScript。那麼,你怎麼編寫這個程式呢?唯一可行的辦法可能就是逐字尋找“北京”這個字串。即便你找到了所有這些欄位,恐怕你也還沒有解決所有麻煩。這個“北京”是指城市還是指省份呢?(別忘了北京地區的周邊郊縣哦。)
  3. 資料自身的邏輯不得不屈服於HTML語言規範的邏輯
    如果你想用Java Applet來處理你的資料,你又遇到了另一個麻煩。你的Java Applet將不得不遍曆整個HTML檔案,把所有的HTML標記剔除掉,再把剝離出來的有用的資料重新組織。同樣,任何一個不是單純為了顯示HTML檔案的應用程式,在處理一個HTML檔案中的資料時,都不得不做大量額外的工作。

當使用XML時,以上的問題迎刃而解。此時,這段資訊的表示是這樣的:

<連絡人清單>
    <連絡人>
        <姓名>張三</姓名>
        <ID>001</ID>
        <公司>A公司</公司>
        <EMAIL>zhang@aaa.com</EMAIL>
        <電話>(010)62345678</電話>
        <地址>
            <街道>五街1234號</街道>
            <城市>北京市</城市>
            <省份>北京</省份>
            <ZIP>100001</ZIP>
        </地址>
    </連絡人>

    <連絡人>
        <姓名>李四</姓名>
        <ID>002</ID>
        <公司>B公司</公司>
        <EMAIL>li@bbb.org</EMAIL>
        <電話>(021)87654321</電話>
        <地址>
            <街道>南京路9876號</街道>
            <城市>上海</城市>
            <省份>上海</省份>
            <ZIP>200002</ZIP>
        </地址>
    </連絡人>
</連絡人清單>

可以看出,現在標記為要表現的資料賦予了一定的含義。用這種形式儲存時,資料非常地簡單明晰,因為它所攜帶的資訊不是顯示上的描述,而是資訊的語意。就象我們後面將要看到的那樣,資訊的顯示方式已經從資訊本身中抽取出來,放在了“樣式單”中。

好,我們現在逐條看一下上面所說的XML的三個問題是如何被一一解決的。

  1. 在XML中,顯示樣式從資料資訊中抽取出來,放在樣式單檔案中。這樣,如果需要改動資訊的表現方式,無須改動資訊本身,只要改動樣式單檔案就夠了。如果這時候老闆又讓你把列表的資料改用表格顯示,你無須再去修改那幾十幾百個資料資訊檔,因為它們和同一個樣式單檔案相關聯,只要改動這個樣式單檔案就足夠了。
  2. 在XML中資料搜尋可以簡單高效地進行。搜尋引擎沒必要再去遍訪整個XML檔案,它只須去找一找相關標記下的內容就夠了。也就是說,要想找“北京”,只要看看<城市〉這個標記下的字串資料是不是匹配就行了。毫不誇張地說,XML的標記為搜尋引擎賦予了智慧!
  3. XML是自我描述語言。即便對於一個預先對我們的FCLML一無所知的人,這個檔案也是清晰可讀的。顯然,<ID>002</ID>代表了一個客戶的客戶身份標識,可是如果面對一個<LI>002,他可能就丈二和尚——摸不著頭腦了。再有,看看上面檔案中嚴格的階層,你就會發現,資訊之間的某些複雜關係,比如樹狀結構、繼承關係,在這裡也都得到了絕好的體現。這樣一來,那些XML的應用處理常式也會感到輕鬆多了。

看到這裡,你可能已經對XML心悅誠服了。不過,XML的優點還遠不止這些哦。

----------------------------------------------
http://alonglee.net 專做資料收集 有空來看看

     獎勵金幣:0   扣除金幣:0

2004-10-7 9:26:00
動網論壇商業版,專業高效能的體現  [文章操作] [使用道具]



  alonglee

  
  
  頭銜:我說的可能是對的
  等級:俠之大者
  文章:597
  積分:1766
  註冊:2003-7-13

               第 4 樓

 
<!-- 以下為主體內容 -->

        

  

        
<!-- 本文內容 -->

1.2.4 XML的其它優點

上面講到的XML的兩大優勢是XML最突出的優點,除此以外,XML至少還有下面三個優點。

  1. XML遵循嚴格的文法要求

    前面講過,HTML的文法要求並不嚴格,瀏覽器可以顯示有文法錯誤的HTML檔案。但XML就不同了,它不但要求標記配對、嵌套,而且還要求嚴格遵守DTD的規定,比如在前面的client.xml中,你決不能在<連絡人></連絡人>這對標記外面,再套上一層<地址></地址>標記。

    “和HTML不同,XML非常非常注重準確性。如果文法有絲毫差錯,分析器都會停止對它的進一步處理,相應地,除了錯誤提示外,你看不到任何的顯示資訊。

    舉例來說,對於任何一個XML檔案,處理指示都是必須的。而如果一個HTML檔案沒有開始標記〈HTML〉,在大多數瀏覽器中仍能通過。因為瀏覽器通常具備一個內建的修改功能去猜測HTML檔案中漏掉了什麼,並試圖修改這個有誤的檔案。XML分析器,無論是內嵌於瀏覽器還是作為獨立的處理器,絕對不允許修改。就象我們編譯一個程式一樣,一個XML檔案或者被判別為‘正確’而被接受,或者被判別為‘錯誤’不予運行。這看上去可能有些武斷,不過想想XML的宗旨在於通過非標準的標記傳遞結構化的資料,一個分析器無法象處理一個已有了一套固定DTD的HTML檔案那樣猜出到底有什麼,又缺什麼。

    ——Ken Sall”

    一聽說編寫XML檔案時要遵循嚴格的文法要求,那些被HTML寵壞了的網頁製作者可能會叫苦不迭。其實仔細想想,一個具有良好文法結構的網頁檔案可以提供較好的可讀性和可維護性,從長遠來看還是大有好處的。何況這大大減輕了瀏覽器開發人員的負擔,也提高了瀏覽器的時間空間效率。再有,以後隨著XML的自動產生工具和所見即所得 (WYSIWYG)的編輯器的問世,XML的編寫者也就不用再操心XML的源碼是什麼樣子,更不用去想XML的一些瑣碎的文法規定。當然,這對於這類XML的開發工具提出的要求可就比較高了。

  2. XML便於不同系統之間資訊的傳輸

    當今的電腦世界中,不同企業、不同部門中存在著許多不同的系統。作業系統有NT、UNIX,資料庫系統有SQL Server、Oracle,...,要想在這些不同的平台、不同的資料庫軟體之間傳輸資訊,不得不使用一些特殊的軟體,非常之不便。而不同的顯示介面,從工作站、個人微機、到手機,使這些資訊的個人化顯示也變得很困難。

    現在有了XML,各種不同的系統之間可以採用XML作為交流媒介。XML不但簡單易讀,而且可以標註各種文字、映像甚至二進位檔案,只要有XML處理工具,就可以輕鬆地讀取並利用這些資料,使得XML成為一種非常理想的網際語言。

  3. XML具有較好的保值性

    XML的保值性來自它的先驅之一——SGML語言。SGML是一套有著十幾年歷史的國際標準,它最初設計的一大目標就是要為檔案提供50年以上的壽命。不要小看檔案的壽命問題,想想我們是如何知道我們祖先的悠久而輝煌的曆史的。如果不是流傳至今的大量曆史文獻,我們恐怕對“唐宋元明清”沒有一點概念;同樣,我們的後代也要靠我們留下的文字資料來瞭解我們。可是現在大部分資料都是電子文檔的形式了,有些人已經不屑於把它們列印下來單獨存檔,而只留一份拷貝就覺得萬事大吉了。禍患的種子就是這樣埋下的,假定五十年以後,你的子孫面對你留下的一大堆用Word97寫的文檔,苦於沒有軟體工具能夠開啟(你現在還能開啟當初用WordStar1.0寫的檔案嗎?),那麼這一段曆史豈不被抹煞了?如果沒有XML,恐怕只有兩個辦法:要不返樸歸真繼續使用紙介質,要不不辭勞苦隨著軟體的更新換代來大規模地轉換你的文檔到最新的格式。

    幸好,20世紀末的科技Crowdsourced Security Testing對這一問題給出了圓滿的解決,這就是SGML和XML的設計。它們不但能夠長期作為一個通用的標準,而且很容易向其它格式的檔案轉化。想留下逝去歲月的印跡嗎?XML是你明智的選擇。

到現在為止,我們已經詳細闡述了XML的五大優點。不過,任何事物都不是完美無缺的,XML也有一些固有的缺陷,雖然這些缺陷不是不可彌補的,但它在XML的陽光大道上,還是投下了一些小小的陰影。

----------------------------------------------
http://alonglee.net 專做資料收集 有空來看看

     獎勵金幣:0   扣除金幣:0

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.