XML第一講:XML基本講解

XML(eXtensible Markup Language)是萬維網聯盟(World Wide Web Consortium W3C)定義的一種可擴展標誌語言。
    可擴展性指允許用戶按照XML規則自定義標記(tags 標籤)。
強項:輕鬆表達多層結構的數據;可擴展。
優點:平臺無關,語言無關。設計目標是描述數據並集中於數據的內容,與顯示分離。
提醒:不能用XML來直接寫網頁。即便是包含了XML數據,依然要轉換成HTML格式才能在瀏覽器上顯示。
語法規則:
    XML文件有且僅有一個根標記,其他標記必須封裝在根標記中,文件的標記必須形成樹狀結構。
    大小寫敏感。
    標記的屬性必須用""或''括起來。
XML細節:

一、 聲明

    大多數XML文檔以XML聲明作爲開始,它向解析器提供了關於文檔的基本信息。
    建議使用XML聲明,但它不是必需的。如果有的話,那麼它一定是文檔的第一行內容。
      如:<?xml  version="1.0"  encoding="UTF-8" standalone="no"?>
    聲明最多可以包含三個名稱-值對(許多人稱它們爲屬性,儘管在技術上它們並不是)。
      <?xml 問號與xml之間不能有空格。
    1)version 是使用的XML 版本:1.0, 1.1
    2)encoding 是該文檔所使用的字符集。該聲明中引用的ISO-8859-1 字符集包括大多數西歐語言用到的所有字符。
      默認字符在UTF-8字符集中,這是一個幾乎支持世界上所有語言的字符和象形文字的Unicode 標準。
    3)standalone(可以是yes 或no)定義了是否孤立處理該文檔。
      如果XML文檔沒有引用任何其它文件,則可以指定 standalone="yes"。
      如果XML文檔引用其它描述該文檔可以包含什麼的文件(如DTD),則 standalone="no"。默認值爲"no"

二、 標記

    左尖括號“<“和右尖括號“>“之間的文本
      1. 在<  >中的稱爲開始標記;在</  >中的稱爲結束標記
      2. 空標記:不包含元素的標記。空標籤必須以“/>”結束。格式: <空標記的名稱/> <空標記的名稱 屬性列表/>
    注意:
      除空標記外,標籤必須成對:有始有終。所有的開始標籤和結束標籤必須匹配。
      在標記符“<“和"標記的名稱"之間不能含有空格。在標記符"/>"前面可以有空格或回行。
      標籤必須嵌套正確。
    XML標記必須遵循下面的命名規則:
     1.名字中可以包含字母、數字以及其它字母或文字;還可包含下劃線(_)、點(.)、連字符(-)
     2.名字不能以數字開頭;可以用字母、文字或者下劃線開頭。
     3.名字不能以字母xml (或XML 或Xml ..) 開頭;
     4.名字中不能包含空格。

三、 元素

    位於開始標記與結束標記間
    一份文檔有且只有一個根元素。
    根元素下的所有元素叫“子元素”。
    標籤必須嵌套正確。
    不包含自子元素的元素叫“葉子”;包含子元素的元素叫“分支”。
    如: <eric>…… </eric>


四、 屬性

    一個元素的開始標誌中的名稱-值對
    所有的屬性值必須位於單引號或雙引號中。
    每一個元素的屬性不允許出現超過一次。
    開始標誌內,類似賦值語句
    如:<eric age="80">……</eric>

五、 註釋

    註釋可以出現在文檔的任何位置。(但不建議放在聲明前面,部分瀏覽器會報錯)
    註釋以 <!-- 開始,以 -->  結束。
    註釋內不能包含雙連字符(--);除此之外,註釋可以包含任何內容。
    註釋內的任何標記都被忽略

六、 處理指令

    處理指令是爲使用一段特殊代碼而設計的標記,簡稱爲PI。
    大多數XML 文檔都是以XML 聲明開始,該聲明本身就是特殊的處理指令。
    處理指令對應用程序特定的數據進行編碼。一條處理指令包含一個目標,後跟數據。用<?和?>定界符將處理指令包起來。
    目標確定應用程序,而對應用程序不能識別的目標,其會忽略這些處理指令。

七、 實體

    XML 規範預定義了五個實體。
      &lt;   ==== <
      &gt;   ==== >
      &quot; ==== ”
      &apos; ==== ‘
      &amp;  ==== &
    自定義實體:在DTD中定義 <!ENTITY 實體標誌 "實體內容">
      在xml中引用自定義實體,用  &實體標誌;  代表實體內容。
    另外,無法從鍵盤輸入的字符可以使用字符引用,就是用字符的Unicode代碼點來引用該字符。
      以"&#x"開始字符引用,以分號結尾,x必須爲小寫,使用十六進制。如: &#x003D; 表示等於號。
      也可以使用字符引用來引用 <,>,',",&  "
      查看字符的代碼點(附件-> 系統工具-> 字符映射表)。

八、 CDATA

    當一段文本中出現很多實體引用和字符引用時,會導致文本數據的讀寫困難,CDATA段就是爲了解決這一問題引入的。
    DATA區段開始於 "<![CDATA["  結束於  "]]>" 
    CDATA內部的所有東西都會被解析器忽略解析,不用檢查它的格式。

    但是CDATA段中不能嵌套另一個CDATA段。

九、 屬性

    屬性是標記的屬性,可以爲標記添加附加信息。
    (1)屬性的組成
       屬性是一個名值對,必須由名稱和值組成,屬性必須在標記的開始標記或空標記中聲明,用"="爲屬性指定一個值。
       語法如下:
           <標記名稱 屬性列表/> 
           <標記名稱 屬性列表>XXX</標記名稱> 
       例如: <桌子 width="40" height='100'/> 
    (2)使有屬性的原則
       屬性不體現數據的結構,只是數據的附加信息;
       一個信息是作爲一個標記的屬性或子標記,取決於具體問題,不要因爲屬性的頻繁使用破壞XML的數據結構。
       下面是一個結構清晰的XML文件:
           <樓房 height="23m" width="12m"> 
               <結構>混凝土</結構> 
               <類別>商用</類別> 
           </樓房>
      下面是一個結構不清晰的XML文件:
          <樓房 height="23m" width="12m" 結構="混凝土" 建築商="華海集團" 類別="商用"></樓房> 

十、 名稱空間/包

    XML文件允許自定義標記,所以可能出現同名字的標記,爲了區分這些標記,就需要使用名稱空間。
    名稱空間的目的是有效的區分相同的標記,其實並不真實存在。
    語法: 聲明有前綴的名稱空間  xmlns:前綴名=名稱空間的名字
          聲明無前綴的名稱空間  xmlns=名稱空間的名字  (缺省) 
    注意:當且僅當它們的名字相同時稱二個名稱空間相同,也就是說,對於有前綴的名稱空間,如果二個名稱空間的名字相同,即使前綴不相同,也是相同的名稱空間,返之同然。前綴只是方便引用而已。
基本術語
    一、序言Prolog:包括XML聲明(XML Declaration)和文檔類型聲明(Document Type Declaration)。
    二、良構(well-formed 規範的):符合W3C定義的XML文檔。
驗證
    爲什麼需要驗證?
    對XML文件施加額外的約束,以便交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章