什麼是XML?
- XML是EXtensible Markup Language的縮寫
- XML是一種類似於HTML的標記語言
- XML是用來描述數據的
- XML的標記不是在XML中預定義的,你必須定義自己的標記
- XML使用文檔類型定義(DTD)或者模式(Schema)來描述數據
- XML使用DTD或者Schema後就是自描述的語言
使用XML, CR / LF 被轉換爲 LF
使用 XML, 新行總是被標識爲 LF(Line Feed,換行)。
你知道打字機是什麼麼?呵呵,打字機是在上個世紀裏使用的一種專門打字的機器。^&^
當你用打字機敲完一行字後,你通常不得不再把打字頭移動到紙的左端。
在Windows應用程序中,文本中的新行通常標識爲 CR LF (carriage return, line feed,回車,換行)。在Unix應用程序中,新行通常標識爲 LF。還有一些應用程序只使用CR來表示一個新行。
<!-- 這是一個註釋 -->
使用XML,空白將被保留
屬性值必須使用引號""
XML文檔中的第一個元素就是根元素。
XML標記都是大小寫敏感的
XML元素命名
XML元素命名必須遵守下面的規則:
- 元素的名字可以包含子母,數字和其他字符。
- 元素的名字不能以數字或者標點符號開頭。
- 元素的名字不能以XML(或者xml,Xml,xMl...)開頭。
- 元素的名字不能包含空格。
避免使用屬性?
應該避免使用屬性麼?
這裏有一些使用屬性引發的問題:
- 屬性不能包含多個值(子元素可以)。
- 屬性不容易擴展。
- 屬性不能夠描述結構(子元素可以)。
- 屬性很難被程序代碼處理。
- 屬性值很難通過DTD進行測試。
如果使用屬性來存儲數據,那麼所編寫的XML文檔一定很難閱讀和操作。儘量使用元素來描述數據,僅使用屬性來描述那些與數據關係不大的額外信息。
統一資源標識符
通用資源標識符(A Uniform Resource Identifier (URI))是一個標識網絡資源的字符串。最普通的URI應該是統一資源定位符Uniform Resource Locator (URL)。URL用於標識網絡主機的地址。另一方面,另一個不常用的URI是通用資源名字Universal Resource Name (URN)。在我們的例子中,一般使用的是URLs。
下面是五個在XML文檔中預定義好的實體參考:
< |
<
|
小於號 |
> |
>
|
大於號 |
& |
& |
和 |
' |
' |
單引號 |
" |
" |
雙引號 |
實體必須以符號"&"開頭,以符號";"結尾。
注意: 只有"<" 字符和"&"字符對於XML來說是嚴格禁止使用的。剩下的都是合法的,爲了減少出錯,使用實體是一個好習慣。
CDATA部件
在CDATA內部的所有內容都會被解析器忽略。
如果文本包含了很多的"<"字符和"&"字符——就象程序代碼一樣,那麼最好把他們都放到CDATA部件中。
一個 CDATA 部件以"<![CDATA[" 標記開始,以"]]>"標記結束:
|
在前面的例子中,所有在CDATA部件之間的文本都會被解析器忽略。
CDATA注意事項:
CDATA部件之間不能再包含CDATA部件(不能嵌套)。如果CDATA部件包含了字符"]]>" 或者"<![CDATA[" ,將很有可能出錯哦。
同樣要注意在字符串"]]>"之間沒有空格或者換行符。
下面的編碼類型不會導致錯誤,(用IE 5.0+瀏覽器觀看), 並且漢字顯示正常:
<?xml version="1.0" encoding="gb2312"?> |
下面的編碼類型不會導致錯誤,(用IE 5.0+瀏覽器觀看), 並且漢字顯示正常:
<?xml version="1.0" encoding="gbk"?> |
|
FS_UNKNOWN
PI:
PI允許XML文件包含應用程序的指令,例如:在XML文件的開頭生命就是一個PT,這些信息告訴XML解析器如何處理XML文件,如下:
<?xml version=”1.0” encoding=”GB2312”?>
使用CSS來顯示XML
使用CSS樣式單 (Cascading Style Sheets) ,可以給XML文檔添加額外的現實信息。
cd_catalog.txt:
數據綁定
XML數據島可以綁定到HTML元素上(比如表格)。
在下面的例子中,一個XML數據島(ID=cdcat)被從外部XML文檔載入。一個HTML的表格綁定到此數據島上。HTML表格內部的span元素使用datafld屬性和XML文檔相應的XML元素相互綁定。
<html> <body> <xml id="cdcat" src="cd_catalog.xml"></xml> <table border="1" datasrc="#cdcat"> <tr> <td><span datafld="ARTIST"></span></td> <td><span datafld="TITLE"></span></td> </tr> </table> </body> </html> |
命名空間屬性
命名空間屬性一般放置在元素的開始標記處,其使用語法如下所示:
xmlns:namespace-prefix="namespace" |
在上面的例子中,命名空間定義了一個Internet 地址:
xmlns:f="http://www.w3schools.com/furniture" |
W3C命名規範聲明命名空間本身就是一個統一資源標示符,Uniform Resource Identifier (URI)。
當我們在元素的開始標記處使用命名空間時,該元素所有的子元素都將通過一個前綴與同一個命名空間相互關聯。
注意:用來標識命名空間的網絡地址並不被XML解析器調用,XML解析器不需要從這個網絡地址中查找信息,該網絡地址的作用僅僅是給命名空間一個唯一的名字,因此這個網絡地址也可以是虛擬的,然而又很多公司經常把這個網絡地址值象一個真實的Web頁面,這個地址包含了關於當前命名空間更詳細的信息。
統一資源標識符
通用資源標識符(A Uniform Resource Identifier (URI))是一個標識網絡資源的字符串。最普通的URI應該是統一資源定位符Uniform Resource Locator (URL)。URL用於標識網絡主機的地址。另一方面,另一個不常用的URI是通用資源名字Universal Resource Name (URN)。在我們的例子中,一般使用的是URLs。
既然前面的例子使用的URL地址來標識命名空間,我們可以確信這個命名空間是唯一的。