XML基本概念入門學(xué)習(xí)指南

HTML的孿生兄弟是誰?毫無疑問要說的是XML,作為一對(duì)孿生兄弟它們兩個(gè)基本的語法類似,但外表和內(nèi)在是不等價(jià)的。雖然XML很像HTML,但它們兩個(gè)之間卻有著本質(zhì)的區(qū)別。
一、XML與HTML
XML(eXtensible Markup Language)是一種可擴(kuò)展的標(biāo)記語言,和HTML語言語法類似,同屬于標(biāo)記語言。那到底如何區(qū)分它們呢?
1、設(shè)計(jì)區(qū)別
XML被設(shè)計(jì)為傳輸和保存數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的內(nèi)容。而HTML被設(shè)計(jì)用來顯示數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的外觀??梢哉fHTML旨在顯示信息,XML旨在傳輸信息。
2、語法區(qū)別
(1)HTML的格式多樣,其中有些標(biāo)記可以不成對(duì)出現(xiàn),XML要求所有的標(biāo)記都必須成對(duì)出現(xiàn);
(2)HTML的標(biāo)簽是固定的樣式有限,XML可以進(jìn)行任何擴(kuò)展,標(biāo)簽類型可以自己定義;
(3)HTML可以有多個(gè)標(biāo)記頭,XML只允許有一個(gè)標(biāo)記頭;
(4)HTML標(biāo)記不區(qū)分大小寫,XML區(qū)分大小寫。
二、XML詳解
曾記否在開發(fā)系統(tǒng)時(shí)使用的系統(tǒng)配置文檔,是的它就是xml文檔。作為系統(tǒng)的配置文件是xml的主要應(yīng)用,同時(shí)它也可以用在Ajax或Web Services中傳輸數(shù)據(jù)。
1、XML歷史
在詳細(xì)了解XML基本用法前,我們先來看看標(biāo)記語言的發(fā)展歷史。
XML的前身是SGML(The Standard Generalized Markup Language),它同時(shí)也是在HTML的基礎(chǔ)上優(yōu)化得到的。SGML是GML整理規(guī)范后的一種標(biāo)準(zhǔn),但是SGML是一種非常嚴(yán)謹(jǐn)?shù)奈谋久枋龇ǎ^于龐大復(fù)雜,難以理解。同時(shí)W3C(萬維網(wǎng)聯(lián)盟)也發(fā)現(xiàn)了HTML的問題,如:不能解釋類似影音文件、化學(xué)公式等其它形式的內(nèi)容,且性能較差不易于擴(kuò)展、彈性差等問題。為了解決上述問題,專家們使用SGML簡(jiǎn)易制作,并依照HTML的發(fā)展經(jīng)驗(yàn)開發(fā)了XML。
2、XML用法
先看一個(gè)XML實(shí)例
<?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type='text/xsl' href='content.xsl'?> <book> <書籍列表> <計(jì)算機(jī)書籍> <bookname isbn="xxx1234567"><<XML應(yīng)用大全>></bookname> <price>39.00</price> </計(jì)算機(jī)書籍> </書籍列表> <!-- 我加上的注釋 --> <書籍列表> <計(jì)算機(jī)書籍> <bookname><![CDATA[Oracle應(yīng)用大全《《《》》》‘’;;‘’“”]]></bookname> <price>39.00</price> </計(jì)算機(jī)書籍> <計(jì)算機(jī)書籍> <bookname>Java應(yīng)用大全</bookname> <price>39.00</price> </計(jì)算機(jī)書籍> </書籍列表> </book>
2.1 聲明
格式良好的XML文件,要以XML聲明開始,即上面示例中的<?xml version="1.0" encoding="utf-8"?>,它提供了關(guān)于文檔的基本信息。其中encoding表示XML文件呢使用的字符編碼方式,要保存的XML文檔編碼格式必須是encoding屬性值。
2.2 元素
元素是開始標(biāo)簽、結(jié)束標(biāo)簽及兩者之間的所有內(nèi)容。
和HTML基本組成相同,XML也是有基本的標(biāo)簽構(gòu)成,其中標(biāo)簽的格式和HTML標(biāo)簽相同,不同的是XML標(biāo)簽有開始標(biāo)簽就必須要有結(jié)束標(biāo)簽,而且嚴(yán)格區(qū)分大小寫。它允許標(biāo)簽格式嵌套,但必須正確嵌套。
XML結(jié)構(gòu)上是一種樹狀結(jié)構(gòu),它的內(nèi)容必須只有一個(gè)根元素,其它的元素必須嵌套在根元素內(nèi)。如:上例中的<book></book>即為根元素。
2.3實(shí)體引用
實(shí)體引用即使用特定的格式在XML文檔中打印出一些特殊的符號(hào),類似于下面要說的CDATA中的文本。
<book> <書籍列表> <計(jì)算機(jī)書籍> <bookname isbn="xxx1234567"><<XML應(yīng)用大全>></bookname> <price>39.00</price> </計(jì)算機(jī)書籍> </書籍列表> </book> <!-- 使用IE打開上面的代碼查看下結(jié)果 -->
基本的實(shí)體引用不在詳述。
2.4 特殊標(biāo)簽
CDATA是特殊的標(biāo)簽,它能夠使在其內(nèi)的所有內(nèi)容以文本的形式打印輸出。形式如下:
<![CDATA[文本內(nèi)容]]> <?xml version='1.0' encoding='utf-8'?> <書籍列表> <計(jì)算機(jī)書籍> <bookname><![CDATA[Oracle應(yīng)用大全《《《》》》‘’;;‘’“”]]></bookname> <price>39.00</price> </計(jì)算機(jī)書籍> <書籍列表>
2.5 雜燴
(1)XML文檔用圖整理出來其實(shí)是一種樹狀結(jié)構(gòu),在顯示時(shí)常使用IE打開;
(2)XML標(biāo)簽中屬性的值必須使用引號(hào)括起來(單引號(hào)或雙引號(hào),但必須保證一致);
(3)在含有復(fù)雜內(nèi)結(jié)構(gòu)的XML文檔中可以使用xsl格式美化xml的顯示,格式:<?xml-stylesheet type='text/xsl' href='需要轉(zhuǎn)換的XML文檔名稱.xsl'?>。
三、注意
1、要有聲明:<?xml version="" encoding=""?>;
2、在保存時(shí)要根據(jù)encoding中的編碼類型保存成相應(yīng)的類型,在保存時(shí)別忘記選擇保存類型;
3、只有一個(gè)頂元素;
4、大小寫敏感;
5、屬性的值必須使用引號(hào)括起來(單引號(hào)或雙引號(hào));
6、要有始有終;
7、嵌套形式要正確。
上面對(duì)XML的基本應(yīng)用進(jìn)行了討論,XML很簡(jiǎn)單吧。是不是XML就這些內(nèi)容了呢?當(dāng)然不是,從它的基本名字中可以看出它也是一種編程語言,那就應(yīng)該具有編程語言的一些特性,如一些語言中的模板或者Java中的API。是的,XML也可以定義自己的語法結(jié)構(gòu),可以向編程語言一樣編寫模板函數(shù),只是在XML中它叫做合法的XML,即是大家所說的經(jīng)DTD或Schema驗(yàn)證的合法的XML。
相關(guān)文章
- XML標(biāo)簽的自定義功能非常強(qiáng)大,比如本文將要講解的DTD(Document Type Definition)就帶給人們一種面向?qū)ο蟀愕母杏X,well,下面就來看一下XML中的DTD文件類型定義完全解析2016-06-24
- 這篇文章主要介紹了XML文件的閱讀與編輯,最常用的工具當(dāng)然還是瀏覽器中的控制臺(tái)與源代碼查看,需要的朋友可以參考下2016-02-16
- 這篇文章主要介紹了XML的命名空間,包括命名空間的聲明等XML入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-02-16
解析XML中的樹形結(jié)構(gòu)與DOM文檔對(duì)象模型
這篇文章主要介紹了XML中的樹形結(jié)構(gòu)與DOM文檔對(duì)象模型,文中舉了JavaScript解析DOM對(duì)象的例子,需要的朋友可以參考下2016-02-15- 這篇文章主要介紹了詳解XML編程中的模式定義XSD,講解了如何在XML文檔中聲明模式及定義類型等內(nèi)容,需要的朋友可以參考下2016-02-15
- 這篇文章主要介紹了XML中的DTD文檔類型定義,是XML入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-02-15
- 這篇文章主要介紹了XML代碼編寫的編碼與驗(yàn)證問題,與HTML類似,XML文件的編碼也能在序言部分被指定,需要的朋友可以參考下2016-02-15
- 這篇文章主要介紹了XML中的處理指令,處理指令在XML中并不常用,稍作了解即可,需要的朋友可以參考下2016-02-15
- 這篇文章主要介紹了XML對(duì)代碼中的空白處理,文中介紹到了XML書寫中的有效空白與無效空白的區(qū)分,需要的朋友可以參考下2016-02-14
深入解析XML中的字符實(shí)體與字符數(shù)據(jù)
這篇文章主要介紹了XML中的字符實(shí)體與字符數(shù)據(jù),文中所說的CDATA片段即是指字符數(shù)據(jù)即不由解析器解析的文本塊,需要的朋友可以參考下2016-02-14