DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> XML基礎教程
XML基礎教程
編輯:XML詳解     
XML入門 (上) 
了解XML將幫助你明白為什麼說它是建立Web應用的完美選擇 
(作者:Scot Wingo ) 

  如果你已經有了自己的個人網站或自己的公司網站,或者你已對Web有了相當的了解,那你可能已經注意到了有關一門新的Web技術的瘋狂地討論---XML。在今年早些微軟公司發布了IE5(第一個商業化的支持XML標准的浏覽器)後,這種瘋狂的熱情已經變成了大家爭相參與的事實。在這裡,你也許會問自己一個很重要的問題: 

  1.什麼是XML? 

   

  XML是可擴展標志語言(eXtensible Markup Language)的簡稱.象HTML一樣,XML是從所有標志語言的元語---標准通用標志語言SGML(Standard Generalized Markup Language)那裡派生出來的.SGML是一種元語言,也可以稱為一個定義諸如Html等標志語言的系統.XML也是一種元語言,一個定義Web應用的SGML的子集.和SGML一樣,你也可以用XML來定義種種不同的標志語言滿足不同的需要,特別在數據表現方面. 

   

  隨著Web應用的不斷發展,Html的局限性也越來越明顯的體現出來了: 

   

  首先,Html是一種界面技術:它把數據和數據的表現形式混在了一起,這使得分開兩者變得相當的困難. 

  它有一個復雜的標簽集:你不能用你自己的特定應用標簽來擴展它. 

  它是"平面型"的:你不能指定一種數據的層次結構來表現數據間諸如包含,重要性等這些細節. 

  它不能把數據簡單地傳送給客戶端讓客戶端自行進行進一步的處理.事實上,Html總是在服務器端產生,客戶端只是一個顯示機器. 

  它只能提供一種顯示方式給你的數據.如果你想提供不同的顯示方式,你就不得不在服務器端重新產生這些數據和完整的Html頁,這樣才能在客戶端顯示出來.如果數據和顯示形式是分離的話,那你就可以把數據下載到客戶端,之後根據你的需要隨意發送有關這些數據的不同的顯示方式. 

  它的可讀性不強,無論是人讀還是計算機讀都是一樣.Html也不是很嚴謹.有些標簽需要匹配開始符和結束符 

  (象<body>和</body>),但是也有一些只有開始符沒有結束符(象<p>和<b>).Html解釋器不得不處理這些有點隨機的格式. 

  Html和XML是World Wide Web Consortium,簡稱W3C 制定的標准.W3C的成員意識到隨著互聯網的飛速發展,必須要找到一種辦法將數據和網頁的表現方式分離開來----因此XML誕生了.為什麼不就用SGML呢?這裡我不想列舉那些惱人的細節,反正有足夠的理由來證明SGML相當的復雜(它的說明有500多頁);XML標准遠比它簡單(只有少少的26頁). 

  盡管嚴格地講,XML只是一種數據標志說明語言,但它已經開始漸漸地把一系列相關的技術包含進來了,象XML DOM,XSL,XLL,XML 命名空間和VML.在本文中,我們將看到XML,XSL(eXtensible Style Language可擴展形式語言),和XML DOM (Document Object Model文檔對象模型)這幾種先進的技術,我們還會介紹其他的標准. 

   

  2.剖析一個XML文件 

   

  XML 1.0標准可以在www.w3.org/TR/REC-xml這個網址上找到.不過要注意,雖然那不是學習XML的最好去處,但在你看完這篇文章後,請再看看它,相信你會有更深的體會. 

  在看第一個例子之前,讓我們先熟悉一下XML的命名系統.與Html類似,一個XML的開始標簽是這樣聲明的<標簽>.結束標簽也類似,不過在小於號後面要加一個前斜槓</標簽>.一個標簽對和它中包含的內容,象<movie>Gone with the Wind</movie>,被稱為一個元素.所有在一個開始標簽和一個結束標簽中的東西都被稱為一個元素的內容.在上面的例子中,Gone with the Wind是movIE這個元素的內容.XML的開始標簽也可以是屬性列表,象<tag attribute1="100" attribute2="200">. 

   

  如果XML文件遵循了基本的標准規則(以後會詳細介紹),那麼它們就是格式正確的XML文件.而所要遵循的最基本的規則就是每一個有開始標簽的元素都要有一個相應的結束標簽,而且子元素的結束標簽一定要在包含它的母元素的結束標簽之前. 

   

  例如,這就是不和規則的形式: 

  <aUCtion_item> 

   <des cription> 

  </auction_item> 

   </des cription> 

  而這是合乎規則的形式: 

  <auction_item> 

   <des cription> 

   </des cription> 

  </auction_item> 

  在W3C的XML標准中有完整而詳細的規則列表.一個格式正確的XML文件必須至少包含一個元素.也就是說,文件中必須有根元素(不在其他任何一個元素中的元素).這使得每一個XML文件都是一個層次分明的元素列表.XML文件通過把元素置於其他標簽對中,來定義產生這種元素間的層次關系(父子,兄弟關系). 

  為了說明這一點,讓我們來看一個例子: 

   

  表 A: XML格式的航空公司的航線數據示例 

  <?XML version=‘1.0‘?> 

  <!-- This is an example of airline flights in XML --> 

  <flight_schedule> 

   <flight flight_number="1073/61"> 

    <origination> 

     <city> Raleigh, NC </city> 

     <airport> RDU (Raleigh Durham Intl.)</airport> 

    </origination> 

    <destination> 

     <city> San Francisco </city> 

     <airport> SFO (San Francisco Intl.)</airport> 

    </destination> 

    <connection> 

     <city> Charlotte, NC </city> 

     <airport> CLT </airport> 

    </connection> 

    <airline> US Airways </airline> 

    <price>1492.00</price> 

    <aircraft> 

     <manufacturer> Boeing </manufacturer> 

     <model> 747 </model> 

    </aircraft> 

    <movie> No </movIE> 

    <meal> dinner </meal> 

    <departure_time> 11:00 </departure_time> 

    <arrival_time> 14:00 </arrival_time> 

   </flight> 

  <!-- More flights would go here, check the data file for an example --> 

  </flight_schedule> 

  表A是一些以XML格式表述的航空公司的航線數據.你可以看到XML相對來說可讀性比較強.標簽和它們的內容都具有相當的自釋性.如果在一個Html表單中又會是怎樣的呢? 

  你幾乎不可能把數據從網頁中分離出來.但在XML格式下,我們可以輕松地用一個旅行代理程序得到這些數據,把它們存到一個數據庫中,或重新格式它的顯示方式. 

  現在讓我們進一步剖析這個例子.第一行是XML的標准標題: 

  <?XML version="1.0" ?> 

  這個標題告訴處理程序(在這裡指IE5 XML解釋器和浏覽器)這是一個XML文件,同時聲明這個文件遵從哪一個XML版本(到現在為止只有1.0版). 

  文件的下一行是一個注釋: 

  <!--An example of airline flights in XML--> 

  XML的注釋格式和HTML一樣,你可能對此早已熟悉.但是與Html不同的是,XML文件中所有的開始標簽都必須匹配一個結束標簽,所以在層次結構首部的開始標簽<flight_schedule>,必須有一個匹配的結束標簽,</flight_schedule>,在文件的結尾. 

  剩下的則是一系列被開始標簽和結束標簽定義的元素.這個例子描述了一個有兩個航班的航班時間表.每一個航班都包含了下面所示的層次化的數據: 

  Origination 

   City 

   Airport 

  Destination 

   City 

   Airport 

  Connection 

   City 

   State 

   Airport 

  Airline 

  Price 

  Aircraft 

   Manufacturer 

   Model 

  Departure_time 

  Arrival_time 
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved