1. 程式人生 > >XML(2)----XML的基本常識

XML(2)----XML的基本常識

本文主要是介紹XML文件格式和XML的語法。

XML文件格式:

1.元素
XML文件內容 的基本單位。
語法格式:
<標籤>文字內容</標籤>
eg.
<姓名>zhanshenzhi2008</姓名>
無論文字內容多麼的複雜,XML元素中還可以再巢狀別的元素,這樣是相關元素構成等級機構。記住:XML是樹結構 。
<employees>
  <employee>
    <name>zhanshenzhi2008</name>
    <salary>3100</salary>
  </employee>
  <employee>
    <name>lj</name>
    <salary>7000</salary>
   </employee>
</employees>


除了元素,XML文件能出現的有效物件:處理指令、註釋、根元素、子元素、和屬性。


2.處理指令
處理指令主要是給解析器提供資訊,是其能夠正確解釋文件內容。還可以定義文件編碼方式或者把一個樣式單檔案應用到XML文件上用以顯示。
它的起始標示符:<?
結束標示符:?>
eg.
<?xml version="1.0"?>


或者

<?xml version="1.0" encoding="ISO-8859-1"?>


3.註釋
語法格式:

<!--註釋內容-->


4.根元素和子元素

如果一個元素從檔案頭的序言部分之後開始一直到檔案尾,包括了檔案中所有的資料資訊,我們成之為根元素,被巢狀在裡面的元素就是子元素。
以上的eg.中<employee>就是<employees> 的子元素。


5.屬性

屬性是對元素的進一步說明,它必須出現在起始標籤中。
屬性是以名稱/取值對出現,並且屬性名不能重複。
eg.
<salary currency=''US$''>2500</salary>
currency=“US$”就是salary的屬性,並且屬性值並需用引號,和HTML語法(可有可無)不同。


XML的語法

XML文件的基本結構有序言部分和一個根元素組成。
序言包括XML宣告和DTD(或者是XMLSchema)。
將上面的例子加上如下的序言,就構成了一個完整的XML文件
<?xml version="1.0"?>
<!DOCTYPE employees SYSTEM "employees.dtd">
<employees>
  <employee>
    <name>zhanshenzhi2008</name>
    <salary>3100</salary>
  </employee>
  <employee>
    <name>lj</name>
    <salary>7000</salary>
   </employee>
</employees>


XML文件定義遵循 http://www.w3.org/TR/REC-xml
1.起始標籤和結束標籤應當匹配:結束標籤必不可少的。
2.大小寫應一致:XML對字母的大小寫是敏感的。<employee>和<Employee>是完全不同的兩個標籤。
3.元素應當正確巢狀;子元素必須巢狀在父元素中。
下面是錯誤的:
<A><B></A><B>
正確的是
<A><B></B></A>
4.屬性值必須用引號。

5.元素的屬性名不能重複。


XML的名稱空間

XML文件中很可能會定義許多名字相同而意義不同的元素或屬性,尤其在把不同的XML文件合二為一時,更容易產生衝突。名稱空間就是為了解決這個問題而提出的。它用URI(Uniform Resource Identifier,統一資源定位符)加以區別,是在XML檔案的元素和屬性中出現的所有名稱的集合。
XML 名稱空間屬性被放置於元素的開始標籤之中
語法格式:
xmlns:namespace-prefix="namespaceURI"
eg.現在有兩個XML文件被一起使用,兩個文件都有不同內容的<table>標籤,此時就會發生衝突
<table>
   <tr>
   <td>hello</td>
   <td>good</td>
   </tr>
</table>
<table>
   <name>zhanshenzhi2008</name>
   <width>100</width>
   <length>160</length>
</table>

為了避免衝突,此時用名稱空間,如下
<l:table xmlns:h="http://www.w3.org/TR/html4/">
   <l:tr>
   <l:td>hello</l:td>
   <l:td>good</l:td>
   </l:tr>
</l:table>
<j:table xmlns:f="http://www.w3school.com.cn/furniture">
   <j:name>zhanshenzhi2008</j:name>
   <j:width>100</j;width>
   <j;length>160</j;length>
</j;table>

註釋:用於標示名稱空間的地址不會被解析器用於查詢資訊。其惟一的作用是賦予名稱空間一個惟一的名稱。不過,很多公司常常會作為指標來使用名稱空間指向實際存在的網頁,這個網頁包含關於名稱空間的資訊。請訪問http://www.w3.org/TR/html4/。
預設的名稱空間
<table xmlns:h="http://www.w3.org/TR/html4/">
   <tr>
   <td>hello</td>
   <td>good</td>
   </tr>
</table>