J2EE復(fù)習(xí)(二)XML(上)
XML(eXtensible Markup Language)簡(jiǎn)介
XML 可擴(kuò)展標(biāo)記語(yǔ)言
XML是一種您可以用來(lái)創(chuàng)建自己的標(biāo)記的標(biāo)記語(yǔ)言。
XML由萬(wàn)維網(wǎng)協(xié)會(huì)(W3C)創(chuàng)建
比較內(nèi)容 | HTML | XML |
可擴(kuò)展性 | 不具有擴(kuò)展性 | 是元標(biāo)記言,可用于定義新的標(biāo)記語(yǔ)言 |
側(cè)重點(diǎn) | 側(cè)重于如何表現(xiàn)信息 | 側(cè)重于如何結(jié)構(gòu)化地描述信息 |
語(yǔ)法要求 | 不要求標(biāo)記的嵌套、配對(duì)等,不要求標(biāo)記之間具有一定的順序 | 嚴(yán)格要求嵌套、配對(duì),并遵循DTD的樹形結(jié)構(gòu) |
可讀性及可維護(hù)性 | 難于閱讀、維護(hù) |
結(jié)構(gòu)清晰,便于閱讀、維 護(hù) |
數(shù)據(jù)和顯示的關(guān)系 | 內(nèi)容描述與顯示方式整合為一體 | 內(nèi)容描述與顯示方式相分離 |
編輯及瀏覽工 | 已有大量的編輯、瀏覽工具 | 編輯、瀏覽工具 |
XML優(yōu)勢(shì)
數(shù)據(jù)重用
數(shù)據(jù)和表示分離
可擴(kuò)展性
語(yǔ)意信息
XML 聲明

XML聲明一般是XML文檔的第一行
XML聲明由以下幾個(gè)部分組成:
version - -文檔符合XML1.0規(guī)范
encoding - -文檔字符編碼,默認(rèn)為"UTF-8"
遵循如下規(guī)則的XML文檔稱為結(jié)構(gòu)完整:
語(yǔ)法規(guī)范
1.必須有XML聲明語(yǔ)句
2.<?xml version="1.0" encoding=“GBK"?>
3.必須有且僅有一個(gè)根元素
4.標(biāo)記大小寫敏感
5.屬性值用引號(hào)
6.標(biāo)記成對(duì)
7.空標(biāo)記關(guān)閉
8.元素正確嵌套
元素語(yǔ)法
1.名稱中可以包含字母、數(shù)字或者其它字符
2.名稱不能以數(shù)字和"_"(下劃線)開頭
3.不能以XML/xml/Xml/…開頭
4.名稱中不能含空格
5.名稱中不能含冒號(hào)(注:冒號(hào)留給命名空間使用)
文本內(nèi)容PCDATA
XML支持Unicde字符集,因此可以在文本中包含字母/數(shù)字/標(biāo)點(diǎn)/符號(hào)等。
注意:因?yàn)閄ML使用<,>,和&界定標(biāo)記,如果在文本中包含有這些字符,必須使用實(shí)體替代。
CDATA
1.在特殊的標(biāo)記CDATA下,所有的標(biāo)記、實(shí)體引用都被忽略,而被XML處理程序一視同仁地當(dāng)作字符數(shù)據(jù)看待。CDATA的形式:〈![CDATA[文本內(nèi)容]]〉
2.用于把整段文本解釋為純字符數(shù)據(jù)而不是標(biāo)記的情況。包含大量<、>、&或者"字符。CDATA節(jié)中的所有字符都會(huì)被當(dāng)作元素字符數(shù)據(jù)的常量部分,而不是XML標(biāo)記。
3.可以輸入任意字符(除]]>外)
4.不能嵌套使用CDATA
CDATA與PCDATA
PCDATA是被解析器解析的文本。文本內(nèi)的標(biāo)簽會(huì)被當(dāng)作標(biāo)記,實(shí)體會(huì)被展開。
CDATA是不被解析器解析的文本。文本內(nèi)的標(biāo)簽不會(huì)被當(dāng)作標(biāo)記,實(shí)體不會(huì)被展開。
XML注釋
注釋內(nèi)容中不要出現(xiàn)--;
不要把注釋放在標(biāo)記中間;
<Name <!--the name-->>TOM</Name>
注釋不能嵌套;
可以在除標(biāo)記以外的任何地方放注釋。
XML屬性
1.屬性值用雙引號(hào)(")或單引號(hào)(')分隔(如果屬性值中有',用"分隔;有",用'分隔)
2.一個(gè)元素可以有多個(gè)屬性,它的基本格式為:<元素名 屬性名="屬性值">
3.特定的屬性名稱在同一個(gè)元素標(biāo)記中只能出現(xiàn)一次
4.屬性值不能包括<, >, &
XML文檔中的屬性有兩個(gè)規(guī)則:
1.屬性必須有值
2.那些值必須用引號(hào)括起。您可以使用單引號(hào),也可以使用雙引號(hào),但要始終保持一致。
命名空間---namespace
為XML中的元素設(shè)定一個(gè)唯一的標(biāo)識(shí)名稱
與URI結(jié)合來(lái)定義一個(gè)唯一標(biāo)識(shí)
去除了XML文件中可能存在的元素名重疊的問(wèn)題
DOCTYPE
文檔類型聲明,緊跟XML聲明之后,包含所有實(shí)體聲明
語(yǔ)法:
<?xml version="1.0"?>
<!DOCTYPE 根元素標(biāo)記名 [
<!--實(shí)體聲明-->
]>
實(shí)體引用
為了避免把字符數(shù)據(jù)和標(biāo)記中需要用到的一些特殊符號(hào)相混淆,XML還提供了一些有用的實(shí)體引用。
作用:避免重復(fù)輸入
自定義實(shí)體語(yǔ)法:
<!DOCTYPE Book(根元素)[
<!ENTITY chapter1(實(shí)體名) "玄幻小說(shuō)"(實(shí)體內(nèi)容)>
<!ENTITY chapter2 "電影記錄">
]>
引用已定義的實(shí)體:&實(shí)體名;
DTD
內(nèi)部的 DOCTYPE 聲明:
假如 DTD 被包含在您的 XML 源文件中,它應(yīng)當(dāng)通過(guò)下面的語(yǔ)法包裝在一個(gè) DOCTYPE 聲明中:
<!DOCTYPE 根元素 [元素聲明]>帶有 DTD 的 XML 文檔實(shí)例(請(qǐng)?jiān)?IE5 以及更高的版本打開,并選擇查看源代碼):

2

3

4

5

6

7

8

9

10

11

12

13

14

以上 DTD 解釋如下:
!DOCTYPE note (第二行)定義此文檔是 note 類型的文檔。
!ELEMENT note (第三行)定義 note 元素有四個(gè)元素:"to、from、heading,、body"
!ELEMENT to (第四行)定義 to 元素為 "#PCDATA" 類型
!ELEMENT from (第五行)定義 frome 元素為 "#PCDATA" 類型
!ELEMENT heading (第六行)定義 heading 元素為 "#PCDATA" 類型
!ELEMENT body (第七行)定義 body 元素為 "#PCDATA" 類型
外部文檔聲明:
假如 DTD 位于 XML 源文件的外部,那么它應(yīng)通過(guò)下面的語(yǔ)法被封裝在一個(gè) DOCTYPE 定義中:
<!DOCTYPE 根元素 SYSTEM "文件名">這個(gè) XML 文檔和上面的 XML 文檔相同,但是擁有一個(gè)外部的 DTD: (在 IE5 中打開,并選擇“查看源代碼”命令。)

2

3

4

5

6

7

8

聲明一個(gè)元素:
在 DTD 中,XML 元素通過(guò)元素聲明來(lái)進(jìn)行聲明。元素聲明使用下面的語(yǔ)法:

或者

空元素通過(guò)類別關(guān)鍵詞EMPTY進(jìn)行聲明:

只有 PCDATA 的元素:
只有 PCDATA 的元素通過(guò)圓括號(hào)中的 #PCDATA 進(jìn)行聲明:

帶有任何內(nèi)容的元素:
通過(guò)類別關(guān)鍵詞 ANY 聲明的元素,可包含任何可解析數(shù)據(jù)的組合:

帶有子元素(序列)的元素:
帶有一個(gè)或多個(gè)子元素的元素通過(guò)圓括號(hào)中的子元素名進(jìn)行聲明:

或者


當(dāng)子元素按照由逗號(hào)分隔開的序列進(jìn)行聲明時(shí),這些子元素必須按照相同的順序出現(xiàn)在文檔中。在一個(gè)完整的聲明中,子元素也必須被聲明,同時(shí)子元素也可擁有子元素。
聲明只出現(xiàn)一次的元素:

聲明最少出現(xiàn)一次的元素:

聲明出現(xiàn)零次或多次的元素:

聲明出現(xiàn)零次或一次的元素:

聲明“非.../既...”類型的內(nèi)容:

上面的例子聲明了:"note" 元素必須包含 "to" 元素、"from" 元素、"header" 元素,以及非 "message" 元素既 "body" 元素。
聲明混合型的內(nèi)容:

上面的例子聲明了:"note" 元素可包含出現(xiàn)零次或多次的 PCDATA、"to"、"from"、"header" 或者 "message"。
XML Schema 簡(jiǎn)介
XML Schema 是基于 XML 的 DTD 替代者。
XML Schema 可描述 XML 文檔的結(jié)構(gòu)。
XML Schema 語(yǔ)言也可作為 XSD(XML Schema Definition)來(lái)引用。
XML Schema 是 DTD 的繼任者
XML Schema 相對(duì)于 DTD 的優(yōu)點(diǎn)如下:
XML Schema 可針對(duì)未來(lái)的需求進(jìn)行擴(kuò)展
XML Schema 更完善,功能更強(qiáng)大
XML Schema 基于 XML 編寫
XML Schema 支持?jǐn)?shù)據(jù)類型
XML Schema 支持命名空間
下面這個(gè)例子是一個(gè)名為 "note.xsd" 的 XML Schema 文件,它定義了下面那個(gè) XML 文檔的元素:

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

對(duì) XML Schema 的引用
此文件包含對(duì) XML Schema 的引用:

2

3

4

5

6

7

8

9

10

11

相關(guān)資料鏈接
J2EE復(fù)習(xí)(一)HTML
J2EE復(fù)習(xí)(二)XML(上)
J2EE復(fù)習(xí)(二)XML(下)--XML解析
J2EE復(fù)習(xí)(三)JavaScript
posted on 2009-04-09 09:33 hackiller 閱讀(1319) 評(píng)論(0) 編輯 收藏 所屬分類: J2EE第一次復(fù)習(xí)