XML是一種元標記語言,沒有許多固定的標記,為web開發人員提供了更大的靈活性。當我們使用HTML時,標記只是簡單的表示內容的顯示形式,而與表示的內容沒有任何關聯,為文檔的進一步處理帶來極大的不便。比如要表示個人簡歷,用Html的表示方式如下:
<Html>
<BODY>
<TABLE border=1 cellspacing=0>
<TH>姓名<TD>禹希初<TH>性別<TD>男<TH>生日<TD>1977.5
<TR>
<TH>技能<TD colspan=5>數據庫設計與維護、web開發
</TABLE>
</BODY>
</Html>
在這裡,我們無法從標記TH、TD得知其內容表示什麼,如果用XML,相應的文檔(文件名:個人簡歷.XML)就可寫成如下形式:
<?XML version="1.0" encoding="GB2312"?>
<resume>
<name>禹希初</name>
<sex>男</sex>
<birthday>1977.5</birthday>
<skill>數據庫設計與維護、web開發</skill>
</resume>
說明:
version──規定了XML文檔的版本,此處只能是1.0;
encoding── 此處規定了XML文檔的編碼類型,此處取值為"GB2312",也就是"簡體中文"。
對比兩例,使用XML我們可以做到自定義標記,用標記表明內容的含義。這樣在Internet上交流資料時,為用計算機處理文檔提供了極大的方便,同時我們閱讀源文件時也不會被一大堆格式弄得暈頭轉向。
然而,由於XML並沒有為標記規定顯示方式,如果我們在游覽器中查看以上兩個文檔(建議使用IE5.0或更新版本),我們將看到XML文檔並沒有以諸如表格的方式來顯示。難道我們就不能像Html一樣顯示文檔嗎?回答是否定的。以個人簡歷為例,需要另建一個格式文件說明各個標記的顯示方式,其內容如下(假設文件名為resume.CSS):
resume{ display: block;}
name{ display: block; font-size:120%;}
sex{ display:block; text-indent:2em}
birthday{ display:block; text-indent:2em}
skill{ display:block; text-indent:2em}
說明:
以上均為CSS樣式,建議讀者參考有關資料熟悉CSS,在以後學習中必須用到,此處由於篇幅關系不作介紹。建立文件resume.CSS後,在個人簡歷.XML文件的第一行後添加以下文字:
<?XML-stylesheet type="text/css" href="resume.CSS"?>
說明:
此處表示引用一個外部CSS樣式文件,其中type規定樣式類型(可取值為text/CSS或text/xsl),href規定文件路徑。
保存文件,再以IE5.0打開文件。怎麼樣?格式有些不一樣吧。好象還不令人滿意,文檔內容是清晰了,但顯示效果比Html編寫的文檔就差得多了,XML編寫的文檔就只能以這種方式顯示嗎?!
提示:
1. 為了更好的理解與掌握XML,建議大家熟悉Html 4.0與CSS 2.0語法;掌握Javascript、VBscript中至少一種;編程經驗、對數據庫理論與SQL的了解均能使大家在學習XML時獲益。
2. XML文檔中標記必須成對出現,如果是空標記也必須有前加"/"的同名標記結束,或使用此種文式<XML_mark/>表示空標記。
3. XML以及下面將要介紹的XSL文檔,屬性值必須用雙引號(")或單引號(’)括起來。
4. XML文檔必須是良構的(XSL文檔也是XML文檔中一種),也就是說標記必須有結束標記、標記可以嵌套但不可交叉,如:
<outer><inner></inner><inner/></outer>
是合法的,而下面的形式
<outer><inner></outer></inner>
則是錯誤的。如果XML文檔在浏覽時出錯,多半是違反了上面提到的規則。