HTML的孿生兄弟是誰?毫無疑問要說的是XML,作為一對孿生兄弟它們兩個基本的語法類似,但外表和內在是不等價的。雖然XML很像HTML,但它們兩個之間卻有著本質上的差異。
一、XML與HTML
XML(eXtensible Markup Language)是一種可擴充的標記語言,和HTML語言語法類似,同屬於標記語言。那到底要如何區分它們呢?
1.設計區別
XML被設計為傳輸和保存數據,其焦點是數據的內容。而HTML則是設計用來顯示數據,其焦點是數據的外觀。可以說HTML旨在顯示訊息,XML旨在傳輸訊息。
2、語法區別
(1)HTML的格式多樣,其中有些標記可以不成對出現,XML要求所有的標記都必須成對出現;
(2)HTML的標籤是固定的樣式有限,XML可以進行任何擴展,標籤類型可以自己定義;
(3)HTML可以有多個標記頭,XML只允許有一個標記頭;
(4)HTML標記不區分大小寫,XML區分大小寫。
二、XML詳解
曾經記否在開發系統時使用的系統配置文檔,是的它就是xml文檔。作為系統的設定檔是xml的主要應用,同時它也可以用在Ajax或Web Services中傳輸資料。 
1、XML歷史
在詳細了解XML基本用法之前,我們先來看看標記語言的發展歷史。
XML的前身是SGML(The Standard Generalized Markup Language),它同時也是在HTML的基礎上優化得到的。 SGML是GML整理規範後的一種標準,但SGML是一種非常嚴謹的文字描述法,過於龐大複雜,難以理解。同時W3C(萬維網聯盟)也發現了HTML的問題,如:不能解釋類似影音檔、化學公式等其它形式的內容,且性能較差不易於擴展、彈性差等問題。為了解決上述問題,專家使用SGML簡易製作,並依照HTML的發展經驗開發了XML。

2、XML用法
先看一個XML實例
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/xsl' href='content.xsl'?>
<book>
<書籍列表>
<計算機書籍>
<bookname isbn="xxx1234567"><<XML應用大全>></bookname>
<price>39.00</price>
</計算機書籍>
</書籍列表>
<!-- 我加上的註解-->
<書籍列表>
<計算機書籍>
<bookname><![CDATA[Oracle應用大全《《《》》》'';;''「」]]></bookname>
<price>39.00</price>
</計算機書籍>
<計算機書籍>
<bookname>Java應用大全</bookname>
<price>39.00</price>
</計算機書籍>
</書籍列表>
</book>2.1 聲明
格式良好的XML文件,要以XML聲明開始,即上面範例中的<?xml version="1.0" encoding="utf-8"?>,它提供了關於文檔的基本資訊。其中encoding表示XML檔案呢使用的字元編碼方式,要儲存的XML文檔編碼格式必須是encoding屬性值。
2.2 元素
元素是開始標籤、結束標籤及兩者之間的所有內容。
和HTML基本上組成相同,XML也是有基本的標籤組成,其中標籤的格式和HTML標籤相同,不同的是XML標籤有開始標籤就必須要有結束標籤,而且嚴格區分大小寫。它允許標籤格式嵌套,但必須正確嵌套。
XML結構上是一種樹狀結構,它的內容必須只有一個根元素,其它的元素必須嵌套在根元素內。如:上例中的<book></book>即為根元素。
2.3實體引用
實體引用即使用特定的格式在XML文件中列印出一些特殊的符號,類似於下面要說的CDATA中的文字。
<book>
<書籍列表>
<計算機書籍>
<bookname isbn="xxx1234567"><<XML應用大全>></bookname>
<price>39.00</price>
</計算機書籍>
</書籍列表>
</book>
<!-- 使用IE開啟上面的程式碼查看下結果-->基本的實體引用不在詳述。
2.4 特殊標籤
CDATA是特殊的標籤,它能夠使在其內的所有內容以文字的形式列印輸出。形式如下:
<![CDATA[文字內容]]>
<?xml version='1.0' encoding='utf-8'?>
<書籍列表>
<計算機書籍>
<bookname><![CDATA[Oracle應用大全《《《》》》'';;''「」]]></bookname>
<price>39.00</price>
</計算機書籍>
<書籍列表>2.5 雜燴
(1)XML文件用圖整理出來其實是一種樹狀結構,在顯示時常使用IE開啟;
(2)XML標籤中屬性的值必須使用引號括起來(單引號或雙引號,但必須保證一致);
(3)在含有複雜內結構的XML文件中可以使用xsl格式美化xml的顯示,格式:<?xml-stylesheet type='text/xsl' href='需要轉換的XML文檔名稱.xsl'?>。
三、注意
1.要有聲明:<?xml version="" encoding=""?>;
2、儲存時要依照encoding中的編碼類型儲存成對應的類型,在儲存時別忘記選擇儲存類型;
3、只有一個頂元素;
4、大小寫敏感;
5.屬性的值必須使用引號括起來(單引號或雙引號);
6、要有始有終;
7.嵌套形式要正確。
上面對XML的基本應用進行了討論,XML很簡單吧。是不是XML就這些內容了呢?當然不是,從它的基本名字可以看出它也是一種程式語言,那就應該具有程式語言的一些特性,例如一些語言中的模板或Java中的API。是的,XML也可以定義自己的語法結構,可以向程式語言一樣編寫模板函數,只是在XML中它叫做合法的XML,即是大家所說的經DTD或Schema驗證的合法的XML。