前言
XML越來越熱,關於XML的基礎教學網路上也隨處可見。可是一大堆的概念和術語往往讓人望而生畏,很多朋友問我:XML到底有什麼用,我們是否需要學習它?我想就我個人學習過程的心得和經驗,寫一篇比較全面的介紹文章。首先有兩點是需要肯定的:
第一:XML肯定是未來的發展趨勢,不論是網頁設計師還是網頁程式設計師,都應該及時學習和了解,等待只會讓你失去機會;
第二:新知識肯定會有很多新概念,試著理解和接受,您才可能會提高。不要害怕和逃避,畢竟我們還年輕。
提綱
本文共分五大部分。分別是XML快速入門,XML的概念,XML的術語,XML的實現,XML的實例分析。最後附錄介紹了XML的相關資源。作者站在一般網頁設計人員的角度,用平實生動的語言,向您講述XML的方方面面,幫助你撥開XML的神秘面紗,快速步入XML的新領域。
第一章:XML快速入門
一. 什麼是XML?
二. XML是新概念嗎?
三. 使用XML有什麼好處?
四. XML很難學嗎?
五. XML和HTML的區別
六. XML的嚴格格式
七. 關於XML的更多
一. 什麼是XML?
這往往是第一個問題,也往往在第一個問題上你就會搞不明白,因為大多的教材上這樣回答:
XML是Extensible Markup Language的簡寫,一種擴展性標識語言。 這是標準的定義。那什麼是標誌語言,為什麼叫擴展性?已經讓人有些糊塗。我想我們這樣來理解會好一點:
對HTML你已經非常熟悉了吧,它就是一種標記語言,記得它的全名嗎:"Hypertext Markup Language" 超文本標記語言。明白了?同時,HTML裡面有許多標籤,類似,等,都是在HTML
4.0裡規範和定義,而XML裡允許你自己創建這樣的標籤,所以叫做可擴充性。
這裡有幾個容易混淆的概念要提醒大家:
1.XML並不是標記語言。它只是用來創造標記語言(例如HTML)的元語言。天,又糊塗了!不要緊,你只要知道這一點:XML和HTML是不一樣的,它的用處途比HTML廣泛得多,我們將在後面仔細介紹。
2.XML並不是HTML的替代產品。 XML不是HTML的升級,它只是HTML的補充,為HTML擴充更多功能。我們仍將在較長的時間裡繼續使用HTML。 (但值得注意的是HTML的升級版本XHTML的確正在向適應XML靠攏。)
3.不能用XML來直接寫網頁。即便是包含了XML數據,依然要轉換成HTML格式才能在瀏覽器上顯示。
以下是一段XML範例文件(例1),用來表示本文的資訊:
<myfile><br><br>
<title>XML Quick Start</title><br><br>
<author>ajie</author ><br><br>
<email>[email protected]</email><br><br>
<date>20010115</date><br><br>
</myfile>
注意:
1.這段程式碼只是程式碼,讓你初步感性認識XML,並不能實現什麼具體應用;
2. 其中類似< title>,< author>的語句就是自己創建的標記(tags),它們和HTML標記不一樣,例如這裡的< title>是文章標題的意思,HTML裡的< title>是頁面標題。
二. XML是新概念嗎?
不是。 XML來自SGML,一種比HTML更早的標誌語言標準。
關於SGML,讓我們來簡單了解一下,你只要有個大致概念就可以。
SGML全名為"Standard Generalized Markup Language"(通用標識語言標準)。看名稱就知道:它是標誌語言的標準,也就是說所有標誌語言都是依照SGML制定的,當然包括HTML。 SGML的涵蓋範圍很廣,凡是有一定格式的檔案都屬於SGML,例如報告,樂譜等等,HTML是SGML在網路上最常見的檔案格式。因此,人們戲稱SGML是HTML的"媽媽"。
而XML就是SGML的簡化版,只不過省略了其中複雜與不常用的部分。 (哦,明白了!是HTML第二個"mother",難怪比HTML功能強大呢。),和SGML一樣,XML也可以應用在金融,科研等各個領域,我們這裡講的,只是XML在web方面的運用而已。
到這裡,你應該有點明白了:XML是用來建立定義類似HTML的標記語言,然後再用這個標記語言來顯示訊息。 三. 使用XML有什麼好處?
有了HTML,為什麼還需要用XML?
因為現在網路應用越來越廣泛,僅靠HTML單一文件類型來處理千變萬化的文件和資料已經力不叢心,而且HTML本身語法十分不嚴密,嚴重影響網路資訊傳送和分享。 (想想瀏覽器相容的問題傷透多少設計師的腦細胞啊。)人們早已經開始探討用什麼方法來滿足網路上各種應用的需要。使用SGML是可以的,但SGML太龐大,程式設計複雜,於是最終選擇了"減肥"的SGML---XML作為下一代web運用的資料傳輸和互動的工具。
使用XML有什麼好處?來看w3c組織(XML標準制定者)的說明:
XML使得在網路上使用SGML語言更加"簡單和直接": 簡化了定義檔案類型的過程,簡化了程式設計和處理SGML檔案的過程,簡化了在Web上的傳送和共享。
1.XML可以廣泛的運用於web的任何地方;
2.XML可以滿足網絡應用的需求;
3.使用XML將使編程更加簡單;
4.XML便於學習和創建;
5.XML代碼將清晰和便於閱讀理解;
還是抽象了些。讓我們在後面的實例教學中慢滿體會XML的強大優勢吧!
四. XML很難學嗎?
有興趣學XML,不禁會問:XML很難嗎?學習XML需要什麼樣的基礎?
XML非常簡單,學習容易。如果你熟悉HTML,你會發現它的文件和HTML非常相似,看同樣的範例文件(例1):
?xml version="1.0"?><br><br>
<myfile><br><br>
<title>XML Quick Start</title><br><br>
<author>ajie</author><br><br>
<email>[email protected]</email><br><br>
<date >20010115</date><br><br>
</myfile>
第一行是XML聲明,表示文件遵循的是XML的1.0 版的規範。
第二行定義了文件裡面的第一個元素(element),也稱為根元素: < myfile>。這個就類似HTML裡的< HTML>開頭標記。注意,這個名稱是自己隨便定義的。
再下面定義了四個子元素:title,author,email,和date。分別說明文章的標題,作者,信箱和日期。當然,你可以用中文來定義這些標籤,看起來更容易理解:
<?xml version="1.0" encoding="GB2312"?>
<文章>
<標題>XML輕鬆學習手冊</標題>
<作者>ajie</作者>
<信箱>[email protected]</信箱>
<日期>20010115</日期>
</文章>
這就是XML的文檔,任何掌握HTML的網友都可以直接寫出這樣簡單的XML文檔。
另外,學習XML也必須掌握一種頁面腳本語言,常見的是javascript和VB script。因為XML資料是使用script實現HTML中呼叫和互動的。我們來看一個最簡單的範例(例2):
1.將下面程式碼儲存為myfile.htm
<html>
<head>
<script language="JavaScript" for="window" event="onload">
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load(" myfile.xml");
nodes = xmlDoc.documentElement.childNodes;
title.innerText = nodesitem(0).text;
author.innerText = nodes.item(1).text;
email.innerText = nodes.item(2).text ;
date.innerText = nodes.item(3).text;
</script>
<title>在HTML中呼叫XML資料</title>
</head>
<body bgcolor="#FFFFFF">
<b>標題: < /b>
<span id="title"> </span>
<b>作者: </b>>
<span id="author"></span>
<b>信箱: </b>
<span id= "email"></span>
<b>日期:</b>
<span id="date"></span>
</body><br><br>
</html><br><br>
2.將下面程式碼儲存為myfile.xml
<?xml version="1.0" encoding="GB2312"?>
<myfile>
<title>XML輕鬆學習手冊</title>
<author>ajie</author>
<email>[email protected]</email>
< date>20010115</date>
</myfile>
3.將它們放在同一個目錄下,用IE5以上版本瀏覽器打開,可以看到效果。 學習並掌握一種script,你將真正了解到XML無比的強大的功能。
五. XML和HTML的差別
XML和HTML都來自於SGML,它們都含有標記,有著相似的語法,HTML和XML的最大差異在於:HTML是一個定型的標記語言,它以固有的標記來描述,顯示網頁內容。例如< H1>表示首行標題,有固定的尺寸。相對的,XML則沒有固定的標記,XML無法描述網頁具體的外觀,內容,它只是描述內容的資料形式和結構。
這是一個質的區別:網頁將資料和顯示混在一起,而XML則將資料和顯示分開來。
我們看上面的例子,在myfile.htm中,我們只關心頁面的顯示方式,我們可以設計不同的介面,用不同的方式來排版頁面,但資料是儲存在myfile.xml中,不需要任何改變。
(如果你是程式設計師,你會驚訝的發現,這與模組化物件導向程式設計的想法極為相似!其實網頁何嘗不是一種程式呢?)
正是這種區別使得XML在網路應用和資訊共享上方便,高效,可擴展。所以我們相信,XML做為一種先進的資料處理方法,將使網路跨越到一個新的境界。
六. XML的嚴格格式
吸取HTML鬆散格式帶來的經驗教訓,XML一開始就堅持實行"良好的格式"。
我們先看HTML的一些語句,這些語句在HTML中隨處可見:
1.
sample
2.< b>< i>sample< /b>< /i>
3.< td>sample< /TD>
4.< font color=red>samplar< /font>
在XML文件中,上述幾種語句的語法都是錯誤的。因為:
1.所有的標記都必須要有一個對應的結束標記;
2.所有的XML標記都必須合理嵌套;
3. 所有XML標記都區分大小寫;
4. 所有標記的屬性必須用""括起來;
所以上列語句在XML中正確的寫法是
1.
sample
2.< b>< i>sample< /i>< /b>
3.< td>sample< /td>
4.< font color="red">samplar< /font>
另外,XML標記必須遵循下面的命名規則:
1.名字中可以包含字母、數字以及其它字母;
2.名字不能以數字或"_" (下劃線) 開頭;
3. 名字不能以字母xml (或XML 或Xml ..) 開頭;
4. 名字中不能包含空格。
在XML文件中任何的差錯,都會得到同一個結果:網頁不能被顯示。各瀏覽器開發人員已經達成協議,對XML實行嚴格而挑剔的解析,任何細小的錯誤都會被回報。你可以將上面的myfile.xml修改一下,例如將< email>改為< Email>,然後用IE5直接開啟myfile.xml,會得到一個出錯訊息頁面:
<?xml version="1.0" encoding="GB2312"?>
<myfile>
<title>XML輕鬆學習手冊</title>
<author>ajie</author>
<Email>[email protected]</email>
< date>20010115</date>
</myfile>
七. 關於XML的更多
好了,到現在你已經知道:
1.什麼是XML;
2.XML,HTML,SGML之間的關係與差異;
3.XML的簡單應用。
恭喜你!你已經不再對XML一無所知,並且已經走在了網路技術的前端。整個學習過程好像並不很難哦:)
如果你對XML有更多的興趣,希望進一步了解XML的詳細資料和其它的實際運用技術,歡迎繼續瀏覽我們的下一章:XML的概念。