XML簡介:
Xml是可擴(kuò)展性標(biāo)記語言(eXtendsible Markup Language)的縮寫。
所謂標(biāo)記,是指一系列的特許的字符符號(hào),可以通過向其中插入文本來存儲(chǔ)文檔的內(nèi)容。
它是不同技術(shù)之間數(shù)據(jù)交換的基石。
* xml與html的區(qū)別:
> Xml是一中標(biāo)記語言,這意味著xml文檔都是使用標(biāo)記來存儲(chǔ)數(shù)據(jù)和信息的。
>> 一個(gè)規(guī)范的html文檔完全可以被看做xml文檔。
>> xml的可擴(kuò)展性體現(xiàn)在其標(biāo)記可由開發(fā)者自行定義。
>> xml文檔更接近于數(shù)據(jù)庫,它并不存儲(chǔ)數(shù)據(jù)的表現(xiàn)形式。
> html是一門編程語言,它可以被解析工具(如IE瀏覽器)處理,
并將信息以某種格式顯示出來。
>> html注重的是數(shù)據(jù)的表現(xiàn)形式。
HTML由于已定義標(biāo)記的有限性,在很多領(lǐng)域已經(jīng)抓襟見肘了。
而xml可擴(kuò)展性很好的彌補(bǔ)了HTML的缺陷。
* xml主要應(yīng)用于一下幾個(gè)方面:
1.數(shù)據(jù)交換
2.跨平臺(tái)應(yīng)用開發(fā)
3.數(shù)據(jù)轉(zhuǎn)換
4.數(shù)據(jù)庫:xml完全可以作為一個(gè)小型數(shù)據(jù)庫來使用。
5.配置文件:尤其是在Java開源框架中,如struts,hibernate,spring等。
都是用xml文檔作為配置文件。
* xml語法:
一.文檔類型的聲明:
<?xml version="1.0"?>
該語句是xml文檔類型的聲明,表示該文檔是一個(gè)xml文件。
version="1.0"表示該xml文檔的版本是1.0的。
說明:
w3c雖然已經(jīng)提供了xml1.1的版本的推薦標(biāo)準(zhǔn),但并未被廣泛的普及和應(yīng)用。
最主要原因是說明了1.1版本不能完全向后兼容xml1.0版本。
因?yàn)閤ml的應(yīng)用非常廣泛,所以在無法做到很好兼容的情況下,
使用xml1.1來代替xml1.0是不可取的。
1.文檔編碼:xml的字符被設(shè)計(jì)為使用Unicode編碼。
> xml文檔的默認(rèn)編碼為UTF-8,欲改變xml的字符編碼,應(yīng)適用encoding屬性。
> 具體設(shè)置:<?xml version="1.0" encoding="ISO-8859-1"?>
2.文檔的獨(dú)立性:xml文檔的外部關(guān)聯(lián)一般使用外部實(shí)體或應(yīng)用了外部DTD文件。
3.注意的問題:
a) xml文檔類型的聲明并不是處理命令,雖然其形式和處理指令非常相似。
b) 字符串"xml"和字符串"<?"之間不能留有空格。
c) 文檔類型的聲明可以不出現(xiàn)在xml文檔中,
如果出現(xiàn),則一定要出現(xiàn)在xml文檔的第一行第一列。
二。文檔注釋:
xml的文檔注釋以<!--開頭,以-->結(jié)束,中間為注釋的內(nèi)容。
注意的問題:
1.文檔注釋中可以包含任何特殊的字符。
2.文檔注釋必須以-->結(jié)束
三。元素:元素是指標(biāo)簽及包含在標(biāo)簽內(nèi)部的內(nèi)容。
> 元素的命名要遵循以下規(guī)則:
1.元素名只能以字母或下劃線開始,其后可以跟數(shù)字,字母和下劃線的任意組合。
2.元素名不能以xml(Xml xMl......)開頭
3.元素名不能包含空格
4.元素的開始標(biāo)簽與結(jié)束標(biāo)簽名稱必須完全一致,包括大小寫一致。
> 根元素:
>> 每個(gè)xml文檔元素有且只有一個(gè)根元素,
>> 根元素是頂級(jí)元素(也就是第一個(gè)元素),
>> 除處理指令和注釋外,其余所有必須包含在根元素當(dāng)中。
> 元素的嵌套和元素的并列:
>> 元素嵌套是指一個(gè)元素完全包含在另一個(gè)元素中。
>> 元素并列是指多個(gè)元素具有相同的父元素。
>> 在xml文檔中不允許元素的交叉使用。
注意的問題:
1.xml是大小寫敏感的
2.文檔類型聲明,注釋和文檔的處理指令都不是元素
3.元素的開始標(biāo)簽和結(jié)束標(biāo)簽必須成對(duì)出現(xiàn)。
四。屬性:
> 屬性用于描述元素,所以屬性必須出現(xiàn)在元素的標(biāo)簽內(nèi)部。
>> 屬性值一定要用引括號(hào)起來。
> 在屬性賦值時(shí)所使用的雙引號(hào)可以單引號(hào)來代替。
>> 兩者在使用時(shí)并無區(qū)別,但是當(dāng)屬性值含有雙引號(hào)時(shí),
則必須使用單引號(hào)來進(jìn)行屬性賦值,反之亦然。
使用屬性還是子元素的區(qū)別:
> 描敘一個(gè)元素的某個(gè)特征時(shí),使用子元素和屬性都是可行的。
> 屬性相對(duì)與子元素的局限性:
1.屬性的擴(kuò)展性差。
2.每個(gè)元素中同名的屬性只能出現(xiàn)一次而同名的子元素可以出現(xiàn)多個(gè)。
3.屬性存儲(chǔ)的數(shù)據(jù)量一旦過大,就會(huì)造成xml文檔結(jié)構(gòu)上的失衡,
給閱讀造成很大的不便。
五:實(shí)體引用
記住五種實(shí)體引用:
1.&;------------------&
2.< ------------------<
3.> ------------------>
4.'------------------'
5."------------------"
六。CDATA的語法
> CDATA的全稱為字符數(shù)據(jù)(Character Data),
> 其語法規(guī)則:<![CDATA[comment]]>,其中<![為開始符,]]>為結(jié)束符,
> 包含在其中的全部字符都被處理器視為普通字符。
注意的問題:
1.CDATA段不可嵌套,而且沒有嵌套的必要。
2.當(dāng)需要將大塊的文本內(nèi)容填充到元素中時(shí),比較適合用CDATA部件。
七。xml中的DTD
> DTD實(shí)際上可以看做一個(gè)或多個(gè)xml文件的模板,
> 這些xml文件中的元素,元素屬性,元素的排列方式、順序,
元素能夠包含的內(nèi)容等,都必須符合DTD中的定義。
> DTD可以是一個(gè)完全獨(dú)立的文件,也可以是在xml文件中直接設(shè)定。
所以DTD分為外部DTD和內(nèi)部DTD.
內(nèi)部DTD:
內(nèi)部DTD是在xml文件中的文件序言區(qū)域中定義的。
語法:
<!DOCTYPE elementname[
............
]>
說明:
<!DOCTYPE : 表示開始設(shè)定DTD
elementsname: 制定此DTD的根元素名稱
[..........]: 在[]標(biāo)記里面定義xml文件使用的元素,然后用>結(jié)束DTD定義
在DTD定義的中間元素設(shè)定,是DTD的最主要部分,其語法如下:
<!ELEMENT elementname elementdifinition>
內(nèi)容模式:ANY,EMPTY,MIXED,子元素
元素:
? 不出現(xiàn)或只出現(xiàn)一次
* 不出現(xiàn)或可以出現(xiàn)多次
+ 必須出現(xiàn)一次以上
無符號(hào) 只能出現(xiàn)一次
<!ATTLIST 元素名 屬性名 屬性類型 缺省類型>
屬性類型:10種 缺省類型:4種:#required #implied #fix 字符串
八。命名空間
語法:xmlns:prefix="uri"
> uri是一個(gè)虛擬的空間,不一定是實(shí)實(shí)在在存在的。
>
命名空間用來解決同名標(biāo)簽的問題.
> 命名空間對(duì)屬性不起作用,只表明標(biāo)簽屬于哪個(gè)命名空間.
十。如何書寫xml文檔
a) 首先要書寫xml文檔的類型聲明
b) 然后添加一個(gè)注釋以標(biāo)注開發(fā)者的信息,開發(fā)時(shí)間等。
c) 接著為xml文檔定義一個(gè)根元素。
d) 再接著添加二級(jí)元素,三級(jí)元素。
以上只是書寫xml的一般步驟,其中元素的嵌套和屬性依附是最關(guān)鍵的步驟。
Xml是可擴(kuò)展性標(biāo)記語言(eXtendsible Markup Language)的縮寫。
所謂標(biāo)記,是指一系列的特許的字符符號(hào),可以通過向其中插入文本來存儲(chǔ)文檔的內(nèi)容。
它是不同技術(shù)之間數(shù)據(jù)交換的基石。
* xml與html的區(qū)別:
> Xml是一中標(biāo)記語言,這意味著xml文檔都是使用標(biāo)記來存儲(chǔ)數(shù)據(jù)和信息的。
>> 一個(gè)規(guī)范的html文檔完全可以被看做xml文檔。
>> xml的可擴(kuò)展性體現(xiàn)在其標(biāo)記可由開發(fā)者自行定義。
>> xml文檔更接近于數(shù)據(jù)庫,它并不存儲(chǔ)數(shù)據(jù)的表現(xiàn)形式。
> html是一門編程語言,它可以被解析工具(如IE瀏覽器)處理,
并將信息以某種格式顯示出來。
>> html注重的是數(shù)據(jù)的表現(xiàn)形式。
HTML由于已定義標(biāo)記的有限性,在很多領(lǐng)域已經(jīng)抓襟見肘了。
而xml可擴(kuò)展性很好的彌補(bǔ)了HTML的缺陷。
* xml主要應(yīng)用于一下幾個(gè)方面:
1.數(shù)據(jù)交換
2.跨平臺(tái)應(yīng)用開發(fā)
3.數(shù)據(jù)轉(zhuǎn)換
4.數(shù)據(jù)庫:xml完全可以作為一個(gè)小型數(shù)據(jù)庫來使用。
5.配置文件:尤其是在Java開源框架中,如struts,hibernate,spring等。
都是用xml文檔作為配置文件。
* xml語法:
一.文檔類型的聲明:
<?xml version="1.0"?>
該語句是xml文檔類型的聲明,表示該文檔是一個(gè)xml文件。
version="1.0"表示該xml文檔的版本是1.0的。
說明:
w3c雖然已經(jīng)提供了xml1.1的版本的推薦標(biāo)準(zhǔn),但并未被廣泛的普及和應(yīng)用。
最主要原因是說明了1.1版本不能完全向后兼容xml1.0版本。
因?yàn)閤ml的應(yīng)用非常廣泛,所以在無法做到很好兼容的情況下,
使用xml1.1來代替xml1.0是不可取的。
1.文檔編碼:xml的字符被設(shè)計(jì)為使用Unicode編碼。
> xml文檔的默認(rèn)編碼為UTF-8,欲改變xml的字符編碼,應(yīng)適用encoding屬性。
> 具體設(shè)置:<?xml version="1.0" encoding="ISO-8859-1"?>
2.文檔的獨(dú)立性:xml文檔的外部關(guān)聯(lián)一般使用外部實(shí)體或應(yīng)用了外部DTD文件。
3.注意的問題:
a) xml文檔類型的聲明并不是處理命令,雖然其形式和處理指令非常相似。
b) 字符串"xml"和字符串"<?"之間不能留有空格。
c) 文檔類型的聲明可以不出現(xiàn)在xml文檔中,
如果出現(xiàn),則一定要出現(xiàn)在xml文檔的第一行第一列。
二。文檔注釋:
xml的文檔注釋以<!--開頭,以-->結(jié)束,中間為注釋的內(nèi)容。
注意的問題:
1.文檔注釋中可以包含任何特殊的字符。
2.文檔注釋必須以-->結(jié)束
三。元素:元素是指標(biāo)簽及包含在標(biāo)簽內(nèi)部的內(nèi)容。
> 元素的命名要遵循以下規(guī)則:
1.元素名只能以字母或下劃線開始,其后可以跟數(shù)字,字母和下劃線的任意組合。
2.元素名不能以xml(Xml xMl......)開頭
3.元素名不能包含空格
4.元素的開始標(biāo)簽與結(jié)束標(biāo)簽名稱必須完全一致,包括大小寫一致。
> 根元素:
>> 每個(gè)xml文檔元素有且只有一個(gè)根元素,
>> 根元素是頂級(jí)元素(也就是第一個(gè)元素),
>> 除處理指令和注釋外,其余所有必須包含在根元素當(dāng)中。
> 元素的嵌套和元素的并列:
>> 元素嵌套是指一個(gè)元素完全包含在另一個(gè)元素中。
>> 元素并列是指多個(gè)元素具有相同的父元素。
>> 在xml文檔中不允許元素的交叉使用。
注意的問題:
1.xml是大小寫敏感的
2.文檔類型聲明,注釋和文檔的處理指令都不是元素
3.元素的開始標(biāo)簽和結(jié)束標(biāo)簽必須成對(duì)出現(xiàn)。
四。屬性:
> 屬性用于描述元素,所以屬性必須出現(xiàn)在元素的標(biāo)簽內(nèi)部。
>> 屬性值一定要用引括號(hào)起來。
> 在屬性賦值時(shí)所使用的雙引號(hào)可以單引號(hào)來代替。
>> 兩者在使用時(shí)并無區(qū)別,但是當(dāng)屬性值含有雙引號(hào)時(shí),
則必須使用單引號(hào)來進(jìn)行屬性賦值,反之亦然。
使用屬性還是子元素的區(qū)別:
> 描敘一個(gè)元素的某個(gè)特征時(shí),使用子元素和屬性都是可行的。
> 屬性相對(duì)與子元素的局限性:
1.屬性的擴(kuò)展性差。
2.每個(gè)元素中同名的屬性只能出現(xiàn)一次而同名的子元素可以出現(xiàn)多個(gè)。
3.屬性存儲(chǔ)的數(shù)據(jù)量一旦過大,就會(huì)造成xml文檔結(jié)構(gòu)上的失衡,
給閱讀造成很大的不便。
五:實(shí)體引用
記住五種實(shí)體引用:
1.&;------------------&
2.< ------------------<
3.> ------------------>
4.'------------------'
5."------------------"
六。CDATA的語法
> CDATA的全稱為字符數(shù)據(jù)(Character Data),
> 其語法規(guī)則:<![CDATA[comment]]>,其中<![為開始符,]]>為結(jié)束符,
> 包含在其中的全部字符都被處理器視為普通字符。
注意的問題:
1.CDATA段不可嵌套,而且沒有嵌套的必要。
2.當(dāng)需要將大塊的文本內(nèi)容填充到元素中時(shí),比較適合用CDATA部件。
七。xml中的DTD
> DTD實(shí)際上可以看做一個(gè)或多個(gè)xml文件的模板,
> 這些xml文件中的元素,元素屬性,元素的排列方式、順序,
元素能夠包含的內(nèi)容等,都必須符合DTD中的定義。
> DTD可以是一個(gè)完全獨(dú)立的文件,也可以是在xml文件中直接設(shè)定。
所以DTD分為外部DTD和內(nèi)部DTD.
內(nèi)部DTD:
內(nèi)部DTD是在xml文件中的文件序言區(qū)域中定義的。
語法:
<!DOCTYPE elementname[
............
]>
說明:
<!DOCTYPE : 表示開始設(shè)定DTD
elementsname: 制定此DTD的根元素名稱
[..........]: 在[]標(biāo)記里面定義xml文件使用的元素,然后用>結(jié)束DTD定義
在DTD定義的中間元素設(shè)定,是DTD的最主要部分,其語法如下:
<!ELEMENT elementname elementdifinition>
內(nèi)容模式:ANY,EMPTY,MIXED,子元素
元素:
? 不出現(xiàn)或只出現(xiàn)一次
* 不出現(xiàn)或可以出現(xiàn)多次
+ 必須出現(xiàn)一次以上
無符號(hào) 只能出現(xiàn)一次
<!ATTLIST 元素名 屬性名 屬性類型 缺省類型>
屬性類型:10種 缺省類型:4種:#required #implied #fix 字符串
八。命名空間
語法:xmlns:prefix="uri"
> uri是一個(gè)虛擬的空間,不一定是實(shí)實(shí)在在存在的。
>
命名空間用來解決同名標(biāo)簽的問題.
> 命名空間對(duì)屬性不起作用,只表明標(biāo)簽屬于哪個(gè)命名空間.
十。如何書寫xml文檔
a) 首先要書寫xml文檔的類型聲明
b) 然后添加一個(gè)注釋以標(biāo)注開發(fā)者的信息,開發(fā)時(shí)間等。
c) 接著為xml文檔定義一個(gè)根元素。
d) 再接著添加二級(jí)元素,三級(jí)元素。
以上只是書寫xml的一般步驟,其中元素的嵌套和屬性依附是最關(guān)鍵的步驟。