從HTML到XML (轉)

worldblog發表於2007-12-23
從HTML到XML (轉)[@more@](作者:廖家序 2000年12月04日 12:46)

  (eXtensible Markup Language,可擴充套件標記語言),是當前最熱門的技術之一,被稱為“第二代語言”、“下一代網路應用的基石”。自它被提出以來,幾乎得到了業界所有大公司的支援,絲毫不遜於當年HTML被提出時的熱度。所以,趁現在XML還未普及的時候,趕快搶先學學,以保住將來的飯碗。

  HTML的缺點
  談XML,不得不先說說“第一代的Web語言”——HTML。HTML老矣,已經快被淘汰了(誇張了一點,不過HTML 4.0後就沒有了,取而代之的是依據XML定義的)。可憐我們這些人,好不容易剛剛能夠湊合著會使用HTML了,卻又不得不被迫丟棄。為什麼呢?HTML對帶動這些年來WWW的蓬勃發展,可謂功不可沒。想要在Inte上作點事情,幾乎無HTML不行。但是HTML有一個致命的缺點,就是:只適合於人與的交流,不適合計算機與計算機的交流。

  大家都知道,HTML是透過一大堆的標記來定義文件內容以什麼樣的形式顯現在我們面前,也即,HTML是一種“顯示描述”語言,它僅僅描述了Web應該如何在頁面上佈置文字、圖形等,並沒有對Internet上最重要的東西——資訊的本身含義進行描述。這些透過HTML表現出來的文字、圖形內容很容易被人理解,而要計算機去理解這些標記內的文字的含義,就很困難了。

  舉個例子來說,我們設計一個,它可以自動地到各大網上商場去將最新的價目抓回來。但問題是,每個網上商場可能在網頁中寫商品名稱和價格時,都有他們自己的一套寫法,如:甲用〈B〉價格〈/B〉,而乙用〈H〉價格〈/H〉,還有更為複雜的表格。那麼我們的程式怎樣才知道,哪種標記裡面的東西才是要抓的價格資訊呢?再比如:在HTML裡,〈B〉Apple〈B/〉只代表了Apple這個單詞在Web瀏覽器裡用粗體來表現,並沒有指出Apple代表什麼,是蘋果?是蘋果計算機公司?還是其它什麼?這造成了HTML不能揭示中資訊的含義。

  另外,HTML的另一個問題就是它的標記的集合是固定的,不能增加自己的有意義的標記。而且各大瀏覽器的規格不盡相同,要使我們用HTML做的網頁能夠被所有瀏覽器正常顯示,我們只能夠使用給我們定義好了的標記來建立網頁。

  在當今的網路世界裡,隨著電子商務的蓬勃發展和基於Web的應用日益廣泛,大量的資訊需要被地處理。實際上,在Internet上的大部分資訊,在最初都是被存放在結構良好的裡面,資訊按照它的意義被存放在相應的欄位裡,比如:員工檔案,名稱、性別、部門等。對於“張三”這個資料,計算機能夠根據它所存放的位置,知道它代表一個員工的姓名。但是,一旦這些資料被調出來,經過CGI、、、等轉換成HTML後,原本有意義的資料就變成了一些無特定含義的HTML標記的組合。使用者必須透過自己的“頭腦”才能解析這些資料,進而“手動”將它們進行記錄、處理,顯然處理資訊的速度會很慢。如果我們能夠將最初儲存在資料庫中的原始結構的資料在計算機之間傳遞,那麼肯定會加快資訊處理的速度。顯然利用HTML辦不到,並且,由於計算機體系、操作以及所使用的資料庫不同,不同的計算機之間要想互相理解對方的資料庫格式是相當困難且非常麻煩的,為了使各種不同的計算機之間能夠互相資訊,似乎HTML又必不可少。怎樣來解決這個難題呢?

  迎接XML
  使用XML可以解決上述的難題。W3C對XML作了如下描述:“XML描述了一類被稱為XML文件的資料,並部分描述了處理它們的計算機程式的行為。XML是SGML的一個應用例項或一種受限形式。從結構上說,XML文件遵從SGML文件標準。”同HTML一樣,XML也是一種基於文字的標記語言,都是從SGML(Standard Generalize Markup Language,標準通用標記語言,是一種老的標記語言,最初用於出版行業,非常複雜,依據SGML開發的應用非常昂貴,只在少數大公司和政府部門有應用)發展而來的,XML保留了SGML 80%的功能,降低了20%的複雜程度,這樣使得開發有關XML的應用變得很便宜,使XML能夠進入“尋常百姓家”。

  提示:HTML只適合於人與計算機的交流,不適合計算機與計算機的交流。
  XML與HTML的不同在於:XML可以讓我們根據我們要表現的文件,自由地定義標記來表現具有實際意義的文件內容,比如:我們可以定義〈文件名稱〉〈/文件名稱〉這樣具有實際意義的標記(可以用中文)。在XML中,我們只需要注意文件的內容,而文件的表現形式則交給CSS(層疊樣式表)和(可擴充套件樣式語言)來完成,如果XML檔案只用於計算機與計算機之間交流資訊,僅僅需要一個XML檔案即可,如果要將XML檔案中的資訊以某種形式顯示出來,如透過瀏覽器顯示,則可引用一個樣式表檔案來定義瀏覽器怎樣來顯示XML檔案中資訊。而且XML不像HTML那樣具有固定的標記集合,它實際上是一種定義語言的語言,也就是說使用XML的使用者可以定義無窮的標記來描述文件中的任何資料元素,突破了HTML固定標記集合的,將文件的內容組織成豐富複雜的完整的資訊體系。XML主要有三個要素:Schema()、XSL(eXtensible Stylesheet Language可擴充套件樣式語言)和XLL(eXtensible Link Language可擴充套件連結語言)。Schema規定了XML文件的邏輯結構,定義了XML文件中的元素、元素的屬性以及元素和元素的屬性之間的關係,它能夠幫助XML的解析器校驗XML文件標記是否合法;XSL是用來規定XML文件表現形式的語言,同CSS類似;XLL則進一步地擴充套件了當前Web上已有的簡單連結。

  XML是一種定義語言的語言,現在已經有幾個以XML規範為主所建立的標記語言,如:Chemical Markup Language(CML:定義怎樣描述化學分子式的結構,將它顯示在網頁上)、Mathematical Markup Language(MathML:將複雜的數學公式以網頁的形式顯示在瀏覽器中)、Synchronized Multimedia Integration Language(SMIL:如何將多資訊展現在WWW中)。

  XML檔案的解析器(一種檢查XML檔案是否有結構上的錯誤,將XML檔案中的標記剝離,讀出正確資訊的工具)大多數是使用語言寫成的,這樣,只要計算機支援Java虛擬機器,都可以支援XML(幾乎所有的計算機都支援Java虛擬機器)。所以,即使是異構系統,也不用擔心讀不懂對方的資料,大家都用XML檔案作為傳送資料的介質即可,因為只要對方計算機上有合適的XML解析器,就可以正確地讀取資訊。現在,幾大資料庫廠商的資料庫產品,如: 8i、Infox、IBM 2等都開始支援XML,輸入資料庫的資料可以輕易地轉化為XML,甚至可以直接以XML的形式輸入資料。有預言稱:將來的電子文件必將是XML的天下。

  提示:XML保留了SGML 80%的功能,降低了20%的複雜程度,這樣使得開發有關XML的應用變得很便宜,使XML能夠進入“尋常百姓家”。
  學習XML並不困難,因為XML的規範很簡潔,整個標準列印出來也只有幾十頁,而且XML的寫法和HTML類似,都是把標記用〈 〉符號括起來。更加方便的是,我們能夠使用中文建立XML標記,比如,我們能夠建立〈價格〉...〈/價格〉這樣的標記,在此標記內的內容,它的含義就是某件東西的價格。想象一下,如果各大網上商場都用這樣的XML標記來說明他們網頁中文字的含義,那麼我們就可以一個自動化的去抓取我們感興趣的東西,比如:我們想了解以下有關XML書籍的資訊,這個軟體就自動去抓取各個網頁中〈XML書籍〉...〈/XML書籍〉標記內的欄位,這該是多麼方便。

  XML具有卓越的,它具有四大特點:優良的資料格式、可擴充套件性、高度結構化以及方便的網路傳輸。因為XML能針對特定使用者的應用定義自己的標記,這就使XML能夠在多種行業的資訊交換中一顯身手,根據不同行業來提供具有各自特色的解決方案。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-995504/,如需轉載,請註明出處,否則將追究法律責任。

相關文章