XML全稱是Extensible Markup Language,中文譯為可擴展的標記語言,它是SGML(標准通用標記語言)的一個子集。
說起XML,大家都會想起HTML,首先,HTML(HyperText Markup Language),即超文本標記語言,是用於描述網頁文檔的一種描述標記語言。而XML是一種類似HTML的可擴展標記語言,它的標記都是自定義的,其設計宗旨是包含和傳輸數據。
下圖列出它們的歷史發展:

XML與HTML之間有以下三點需要申明:
1、XML不是用來替換HTML的技術;
2、XML和HTML為不同的目的而設計;
3、XML設計的核心是包含和傳輸數據,而HTML設計的核心是顯示數據。
XML示例
1 <?xml version="1.0" encoding="utf-8" standalone="no"?> 2 <students> 3 <student number="1001"> 4 <name>zhangSan</name> 5 <age>23</age> 6 <sex>male</sex> 7 </student> 8 <student number="1002"> 9 <name>liSi</name> 10 <age>32</age> 11 <sex>female</sex> 12 </student> 13 <student number="1003"> 14 <name>wangWu</name> 15 <age>55</age> 16 <sex>male</sex> 17 </student> 18 </students>
XML組成主要包括:聲明和元素。
XML聲明
示例中的第一行即為XML的文檔聲明。
<?xml version="1.0" encoding="utf-8" standalone="no"?>
其結構包括:
version屬性
用於說明當前xml文檔的版本,version屬性是必須的;
encoding屬性
用於說明當前xml文檔使用的字符編碼集,xml解析器會使用這個編碼來解析xml文檔。encoding屬性是可選的,默認為UTF-8。注意,如果當前xml文檔使用的字符編碼集是gb2312,而encoding屬性的值為UTF-8,那么一定會出錯;
standalone屬性
用於說明當前xml文檔是否為獨立文檔,如果該屬性值為yes,表示當前xml文檔是獨立的,如果為no,表示當前xml文檔不是獨立的,即依賴外部的文件。默認是yes
XML元素
XML元素的格式如下:
<標記名稱 屬性名1="屬性值1" 屬性名1="屬性值1" ……>內容</標記名稱>
所有的數據內容都必須在某個標記的開始和結束標記內,而每個標記又必須包含在另一個標記的開始與結束標記內,形成嵌套式的分布,只有最外層的標記不必被其他的標記所包含。最外層的是根元素(Root),又稱文件(Document)元素,所有的元素都包含在根元素內。在上面的示例中,<student>就是根元素,根元素有且只能有一個。
XML的基本語法
1、注釋
XML的注釋與HTML的注釋相同,以“<!--”開始,以“-->”結束。
2、區分大小寫
在HTML中是不區分大小寫的,而XML區分大小寫,包括標記、屬性、指令等。
3、標記
“<”表示一個標記的開始,“>” 表示一個標記的結束。XML中只要有起始標記,就必須有結束標記,而且在使用嵌套結構時,標記之間不能交叉。在XML中不含任何內容的標記叫做空標記,比如<site></site>。空標記有一種特殊的寫法,以<開始,然后是元素名稱,然后以/>結束。比如<site />。
4、屬性
XML屬性的使用與HTML屬性基本相同,但需要注意的是屬性值要加雙引號。
5、實體引用
實體引用是指分析文檔時會被字符數據取代的元素,實體引用用於XML文檔中的特殊字符,否則這些字符會被解釋為元素的組成部分。例如,如果要顯示“<”,需要使用實體引用“<”否則會被解釋為一個標記的起始。
XML中有5個預定義的實體引用:

6、CDATA
在XML中有一個特殊的標記CDATA,在CDATA中的所有文本都不會被XML處理器解釋,而會直接顯示。即在CDATA段中出現的“<”、“>”、“””、“’”、“&”,都無需使用轉義字符。這可以提高xml文檔的可讀性。格式為:
<![CDATA[文本內容]]>
7、處理指令
處理指令是用來給處理XML文件的應用程序提供信息的,處理指令的格式如下:
<?處理指令名字 處理指令信息?>
如
<?xml version="1.0" encoding="utf-8" standalone="no"?>
中"xml"是處理指令名稱,version="1.0"...是處理指令信息。
