曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專營(yíng)店坑蒙拐騙欺詐消費(fèi)者
前兩個(gè)例子中,如果開(kāi)頭字母是下劃線(例如,“_ 4 2 b o o k”、“_ x m l”或“ _ X M L”),這些命名
就成為合法的了。
現(xiàn)在我們知道了如何按照X M L語(yǔ)法正確地命名,下面來(lái)看一看如何使用它們。
2.2 文檔部分
一個(gè)格式正規(guī)的X M L文檔由三個(gè)部分組成(參見(jiàn)圖2 - 2):
• 一個(gè)可選的序言(p r o l o g)。
• 文檔的主體( b o d y),由一個(gè)或多個(gè)元素組成,其形式為一個(gè)可能也包含字符數(shù)據(jù)
(character data)的層次樹(shù)。
• 可選的“魚(yú)龍混雜”的尾聲(e p i l o g),其內(nèi)容包括注釋、處理指令( processing instruction,
P I)和/或緊跟元素樹(shù)后面的空白。
詳細(xì)信息我們很快就會(huì)談到。
既然數(shù)據(jù)對(duì)象即使沒(méi)有序言和/或尾聲也可以是格式正規(guī)的X M L,我們暫時(shí)不考慮這些部分
的細(xì)節(jié),直到我們已經(jīng)介紹完所有重要的中間部分—元素和字符數(shù)據(jù)。
22使用XML 高級(jí)編程
下載
圖2-2
2.3 元素
元素是X M L標(biāo)記的基本組成部分。它們可以包含其他的元素、字符數(shù)據(jù)、字符引用、實(shí)體
引用、P I、注釋和/或C D ATA部分—這些合在一起被稱作元素內(nèi)容( element content)。(不用
擔(dān)心這些術(shù)語(yǔ)都是什么意思,接下來(lái)我們會(huì)進(jìn)行解釋。要注意這些元素都是包容器。)所有的
X M L數(shù)據(jù)(除了注釋、P I和空白)都必須包容在其他元素中。
元素使用標(biāo)記( t a g)進(jìn)行分隔—由一對(duì)尖括號(hào)(“< >”)圍住元素類型名(一個(gè)字符串)。
每一個(gè)元素都必須由一個(gè)起始標(biāo)記和一個(gè)結(jié)束標(biāo)記分隔開(kāi),這與要求比較松的H T M L不同,后者
的結(jié)束標(biāo)記可以省略。這項(xiàng)規(guī)則唯一的例外是沒(méi)有任何內(nèi)容的元素,即空元素( empty element),
它既可以使用起始標(biāo)記/結(jié)束標(biāo)記對(duì),也可以使用短小精悍的混合形式—空元素標(biāo)記。在下面
的章節(jié)里,我們會(huì)看到許多標(biāo)記的例子。
元素是XML對(duì)內(nèi)容的包容器—它可以包容字符數(shù)據(jù)、其他元素以及/或其他標(biāo)記(注釋、
P I、實(shí)體引用等等)。既然元素代表的是一些離散的對(duì)象,我們可以把它們看作是X M L語(yǔ)
第2章XML 語(yǔ)法使用23
下載
文檔
序言
主體
尾聲
言中的名詞。
下面我們看一看這些標(biāo)記的細(xì)節(jié)信息。
2.3.1 起始標(biāo)記
一個(gè)元素開(kāi)始的分隔符被稱作起始標(biāo)記。起始標(biāo)記是一個(gè)包含在尖括號(hào)里的元素類型名。
我們也可以把起始標(biāo)記看作是“打開(kāi)”了一個(gè)元素,就像我們打開(kāi)一個(gè)文件或通信鏈路一樣。
下面是一些合法的起始標(biāo)記:
再次強(qiáng)調(diào),由于X M L是大小寫(xiě)敏感的,所以前兩個(gè)例子不是等同的標(biāo)記;而且,元素類型
名可以使用任何合法字母,而不一定是A S C I I碼字符。
2.3.2 結(jié)束標(biāo)記
一個(gè)元素最后的分隔符被稱作結(jié)束標(biāo)記。結(jié)束標(biāo)記由一個(gè)反斜杠和元素類型名組成,被圍
在一對(duì)尖括號(hào)中。每一個(gè)結(jié)束標(biāo)記都必須與一個(gè)起始標(biāo)記相匹配,我們可以把結(jié)束標(biāo)記理解為
關(guān)閉了一個(gè)由起始標(biāo)記打開(kāi)的元素。
下面是一些合法的結(jié)束標(biāo)記,它們與前面列舉的起始標(biāo)記相對(duì)應(yīng):
所以,帶有完整的起始、結(jié)束標(biāo)記的元素應(yīng)該是如下形式:
<某個(gè)標(biāo)記> 包含的內(nèi)容< /某個(gè)標(biāo)記>
下面我們簡(jiǎn)單地了解一下沒(méi)有內(nèi)容的元素。
2.3.3 空元素標(biāo)記
空元素可能不包含任何內(nèi)容。比如說(shuō)想準(zhǔn)確地指明文檔中的某些特定位置(下一節(jié)將看到
這樣的例子)。我們可以只加入起始標(biāo)記和結(jié)束標(biāo)記而不在其中包含任何內(nèi)容:
當(dāng)然,如果你只是想指定一個(gè)點(diǎn),而不是提供一個(gè)包容器,節(jié)省些空間可能會(huì)更好。所以,
X M L指定空元素可以用縮略形式表示,它是起始和結(jié)束標(biāo)記的混合體。它既短小精悍,而且還
能明確指出該元素既不會(huì)有內(nèi)容,也不允許有內(nèi)容。
空元素標(biāo)記由一個(gè)元素類型名稱緊跟一個(gè)反斜杠組成,并圍在一對(duì)尖括號(hào)中。
X M L數(shù)據(jù)對(duì)象可能只包含單個(gè)文檔元素和一些空元素(可能有屬性)!這樣的文件可以用
24使用XML 高級(jí)編程
下載
于包含程序的配置信息或者C + +對(duì)象模板。
2.3.4 標(biāo)記:一個(gè)簡(jiǎn)單的例子
任何簡(jiǎn)單的A S C I I文本文件都是非常奇妙的包容器(文件),其中有一系列更小的包容器
(文本行),而其中又順序排列著字母。從另一種意義上說(shuō),文件的物理存在也包容在它的父文
件系統(tǒng)中。但是,在沒(méi)有一個(gè)明確表示“文件開(kāi)始”的分隔符的同時(shí),文件結(jié)束位置經(jīng)常用一
個(gè)特殊控制字母標(biāo)記出來(lái)(例如“ C t r l - Z”或它的十六進(jìn)制值“ 1 A”)。文本行隱含的開(kāi)始位置是
它的父文件的物理起始處,但每一個(gè)文本行都有一個(gè)用回車(chē)和/或換行符表示的“行結(jié)尾”的分
隔符。
例如,下面是一個(gè)基本的A S C I I碼文件(注意:行號(hào)并不是文件內(nèi)容的一部分):
程序清單2 - 1
當(dāng)同樣的文本用X M L文檔表示時(shí),原本含糊不清的數(shù)據(jù)結(jié)構(gòu)現(xiàn)在變得清晰明確了(再次說(shuō)
明,這里的行號(hào)并不是文檔的一部分):
程序清單2 - 2
在這個(gè)例子中,我們顯式地表示出整個(gè)文件內(nèi)容的開(kāi)始和結(jié)尾(第1行和第8行),里面每一
個(gè)文本行的起始和結(jié)束,并包含一個(gè)文件尾的標(biāo)記(第7行)。這是一個(gè)表述清晰、可驗(yàn)證的結(jié)
構(gòu),它由7個(gè)元素(其中一個(gè)包含其他6個(gè))組成,這些元素用三個(gè)不同的元素類型表示
(< t e x t f i l e >、< l i n e >和< E O F / >)。
現(xiàn)在,我們已經(jīng)知道了元素類型名稱的要求以及如何將標(biāo)記應(yīng)用在元素中,下面讓我們先
暫時(shí)停止對(duì)元素的討論,看一看X M L文檔的結(jié)構(gòu)。
2.3.5 文檔元素
格式正規(guī)的X M L文檔的定義形式是一個(gè)簡(jiǎn)單的層次樹(shù),每個(gè)文檔都有一個(gè),而且只有一個(gè)
根節(jié)點(diǎn),它被稱作文檔實(shí)體( document entity)或文檔根( document root)。這個(gè)節(jié)點(diǎn)可能包含
P I和/或注釋,而且總是包含子元素樹(shù),它們的根被稱作文檔元素( document element)。這個(gè)元
中國(guó)航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級(jí)編程上(11)