XML簡明教程(二)

來源:互聯網
上載者:User
 
二、XML基礎
   (一)XML術語

    在學習XML之前,我想先給大家介紹一些XML使用的術語。平常我們學習新的語言時,總會遇到許多難以理解的術語,在這裡

就先介紹一些主要的給大家。

   元素(Elements):代表XML文檔中的每一個組件,包含字元、元素或者兩者皆有,允許有空元素(empty element)。

   屬性(Attributes):放在元素後面的資料,代表這個元素的另一種特性和特徵。

   統一編碼(Unicode):一種字元集,包括了全世界各種語言中有用的字元。

   實體:“文本片”,實體也像一個縮寫,一個實體可以是一個字元也可以是一個文檔的資料,是XML文本的基本單位。

   標記(Markup):像標記(TAG)、實體引用(Entity reference)和聲明這樣的構件。

   樣式表(XSL):描述XML的中繼資料檔案格式的語言(因為CSS對於XML來講不夠用)。

   序言(Prolog):關於文檔執行個體表現形式的資訊。

   文檔執行個體(Document instance):以元素的階層組織的實際文檔資料。

   (二)XML文法簡介

    1.看一個簡單的例子

    這是一個關於庫存物品清單的簡單例子,大家可以從中發現XML的許多特性,並且可以體會到XML的中繼資料檔案是非常清晰易

讀的:

  <!-XML檔案樣本-->

  <?xml version="1.0" encoding="GB2312" ?>

  <庫存清單>

   <!--這裡就是注釋-->

   <庫存物品>

   <名稱>毛巾</名稱>

   <規格 單位="cm">25*50</規格>

   <生產廠家>中國棉紡廠</生產廠家>

   <生產日期>20010-09-01</生產日期>

   <數量 單位="條">400</數量>

   <進貨價 單位="元">2.5</進貨價>

   <零售價 單位="元">6.5</零售價>

   </庫存物品>

   <庫存物品>

   <名稱>碗</名稱>

   <規格 單位="cm">5*15</規格>

   <生產廠家>中國搪瓷廠</生產廠家>

   <生產日期>20010-09-11</生產日期>

   <數量 單位="個">200</數量>

   <進貨價 單位="元">1.5</進貨價>

   <零售價 單位="元">4.5</零售價>

   </庫存物品>

   <庫存物品>

   <名稱>筷子</名稱>

   <規格 單位="個">1*10</規格>

   <生產廠家>中國搪瓷廠</生產廠家>

   <生產日期>20010-09-11</生產日期>

   <數量 單位="把">200</數量>

   <進貨價 單位="元">1.5</進貨價>

   <零售價 單位="元">3.5</零售價>

   </庫存物品>

  </庫存清單>

  

    看過了XML語言的基本格式,下面將詳細講解XML中繼資料檔案的各個組成部分,實際就上面這些而言是非常簡單的,當然,我

們要想更清楚的瞭解和學習XML,就必須清楚地知道這些定義的意義。

    2.聲明(Declaration)

    XML資料檔案的定義不象HTML那樣自由,它是非常嚴格的,缺少一個就會出錯!因為每個XML的解析器第一步要做的事情就是

檢查XML檔案是否合格,就是“well-formed”,所以大家看到第一句是這樣些的:

  <?xml version="1.0" encoding="GB2312" ?>

   注意的是:不能漏掉此句,否則解析器不予解析的!當然裡面的encoding可以不用寫,預設是Unicode,在此對XML使用的字元編

碼作一下說明,大家都應該知道中文和英文的區別吧,呵呵,有人說了,這也太簡單了,實際上平時有區別就罷了,結果鬧到電腦

上真是比較麻煩,大家用過古董DOS的就知道使用漢字在電腦上是一件多麼困難的事情,別人26個字母就可以搞定,漢字卻要好幾萬

個。現在的電腦的發展雖然神速,可國際化的問題卻一直存在,況且不屬英語語系的國家也都有此類問題,因此美國的各大電腦廠

商組成了一個Unicode促進會,結合ISO的字型檔標準,推出了Unicode,這個編碼可以滿足絕大多數語系的需要!

    3.元素(Elements)和屬性(Attributes)

    <元素名 屬性名稱=”屬性值”>

   <子項目>元素的資料</子項目>

    </元素名>

    大家看上面的這個例子,就能很形象的理解什麼是元素什麼是屬性,但是需要注意的是元素的大小寫是不一樣的,也就是說<

t></t>和<T></T>不是同一個元素。還有就是元素裡的資料,只要是合法的就會完全忠實的成為資料,就如:

    <元素名>這是一個</元素名>

    <!-這是另一個-->

    <元素名>這是一個 </元素名>

    <!-這又是另一個-->

    <元素名>這是一個

    </元素名>

    大家注意到沒有,第一、二隻差一個空格,第三個則是多了一個斷行符號符,但是這三個資料卻是不同的資料,因此大夥在寫這

些資料的時候可一定要小心!

    如果大家對於物件導向熟悉的話,一定清楚類也是有屬性的,而XML自然也是包括屬性的,XML的元素是擁有屬性的,而且可

以有許多屬性,並且屬性值必須使用單引號或雙引號包含起來。

    4.注釋(Comments)

    如果大家編寫過程式,就一定知道,看別人的程式是一件非常痛苦的事情。如果別人的程式是沒有注釋的話,那簡直就成了

一種慘無人道的折磨,呵呵,所以,在文檔中嵌入關於文檔和標記的資訊就是很有協助的。這樣不但可以協助別人也可以協助自己。

   在XML的注釋裡是這樣的:

  <!-啊,這就是協助-->

   在這個注釋中間,可以放入除了“--”符號以外的所有字元,這稍稍有些不習慣,我們往往會使用這個符號來分離不同組成部分

的文檔,在XML的檔案裡則需要改一改了。

   5.預定義實體

    當我們建立XML時候,有些符號例如“<”等和XML相重的標記,譬如下面的:

    <文章>

   <段落>

   <html>

   <head>

   <title></title>

    </head>

   <body>

   <h1>我們那嘎都是活雷鋒</h1>

   <b>老張開車去東北……撞了</b>

   </body>

   </html>

   </段落>

    </文章>

   這樣是肯定行不通的,HTML和XML的定義相重,因為XML有5種預定義的實體,如下:

  &-------------------&

  <----------------------<

  >--------------------- >

  &apos;------------------‘

  "------------------“

   這樣再寫這些檔案就會象下面這樣:

  <文章>

   <段落>

   <html>

   <head>

   <title></title>

    </head>

   <body>

   <h1>我們那嘎都是活雷鋒</h1>

   <b>老張開車去東北……撞了</b>

   </body>

   </html>

   </段落>

  </文章>

   解析器會自動把這些符號轉換成我們所要的檔案,但是這樣實在是不好看懂,所以就又有了這個CDATA。

   6.CDATA

    從上面那一節的例子可以看出,使用預定義實體實在是難以看懂,但是有了這個CDATA之後,我們就可以讓分析器把那些特殊

資料當作普通的資料來處理了!

   CDATA的定義如下:

  <![CDATA[ 內容 ]]>

   將上節的例子拿來使用:

  <文章>

   <段落><![CDATA[

   <html>

   <head>

   <title></title>

    </head>

   <body>

   <h1>我們那嘎都是活雷鋒</h1>

   <b>老張開車去東北……撞了</b>

   </body>

   </html>

   ]]>

   </段落>

  </文章>

   這樣,解析器就可以解釋在這個符號中間的特殊字元了!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.