曝光臺 注意防騙
網(wǎng)曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
所有的元素類型聲明都以<!ELEMENT(區(qū)分大小寫)開頭而以>結(jié)束。其中包括聲明的元素名稱(本例中為SEASON)后接內(nèi)
容規(guī)格。關(guān)鍵詞ANY(也要區(qū)分大小寫)表明所有可能的元素以及可析的字符數(shù)據(jù)都可以是SEASON 元素的子元素。
基本元素使用ANY 是通常的作法——尤其是對未結(jié)構(gòu)化的文檔——但對多數(shù)其他元素則應(yīng)避免使用ANY。通常每項標(biāo)記的內(nèi)
容應(yīng)盡可能準(zhǔn)確。DTD 經(jīng)常是在整個開發(fā)過程中逐步完善的,隨著反映應(yīng)用情況和首制作中未預(yù)料的情況,嚴(yán)格性將減少。
所以,最好是開始時嚴(yán)格,以后再放松些。
8.5.2 #PCDATA
盡管文檔中可以出現(xiàn)任何元素,但出現(xiàn)的元素必須聲明。第一個需要聲明的元素是YEAR,下面是YEAR 元素的元素聲明:
<!ELEMENT YEAR (#PCDATA)>
該聲明說明YEAR 只能包含可析的字符數(shù)據(jù),即非標(biāo)記文本,但它不能包含自己的子元素。所以,下面這個YEAR 元素是合法
的:
<YEAR>1998</YEAR>
以下這些YEAR 元素都是合法的:
XML 實用大全
第 199 頁
<YEAR>98</YEAR>
<YEAR>1998 C.E.</YEAR>
<YEAR>
The year of our lord one thousand,
nine hundred, & ninety-eight
</YEAR>
甚至下面這個YEAR 元素也是合法的,因為XML 不會去檢查PCDATA 的內(nèi)容,只要是不包括標(biāo)記的文本就可以。
<YEAR>Delicious, delicious, oh how boring</YEAR>
但是,下面的YEAR 元素是非法的,因為它包含了子元素:
<YEAR>
<MONTH>January</MONTH>
<MONTH>February</MONTH>
<MONTH>March</MONTH>
<MONTH>April</MONTH>
<MONTH>May</MONTH>
<MONTH>June</MONTH>
<MONTH>July</MONTH>
<MONTH>August</MONTH>
<MONTH>September</MONTH>
<MONTH>October</MONTH>
<MONTH>November</MONTH>
<MONTH>December</MONTH>
</YEAR>
SEASON 和YEAR 元素聲明應(yīng)包括在文檔類型聲明中,如下所示:
XML 實用大全
第 200 頁
<!DOCTYPE SEASON [
<!ELEMENT SEASON ANY>
<!ELEMENT YEAR (#PCDATA)>
]>
通常,空格和縮進(jìn)無關(guān)緊要。元素聲明的順序也不重要。下面這一文檔類型聲明的作用與上面的聲明相同:
<!DOCTYPE SEASON [
<!ELEMENT YEAR (#PCDATA)>
<!ELEMENT SEASON ANY>
]>
上面兩個文檔聲明都是說一個SEASON 元素可以包含可析的字符數(shù)據(jù)和以任意順序聲明的任意數(shù)量的其他元素。本例中如此
聲明的元素只有YEAR,它只能包含可析的字符數(shù)據(jù)。例如考慮清單8-5 中的文檔。
清單8-5:一個合法的文檔
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE SEASON [
<!ELEMENT YEAR (#PCDATA)>
<!ELEMENT SEASON ANY>
]>
<SEASON>
<YEAR>1998</YEAR>
</SEASON>
因為SEASON 元素也可以包含可析的字符數(shù)據(jù),所以可以在YEAR 元素之外附加文本,如清單8-6 所示。
清單8-6:包含YEAR 元素和正常文本的合法的文檔
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE SEASON [
<!ELEMENT YEAR (#PCDATA)>
XML 實用大全
第 201 頁
<!ELEMENT SEASON ANY>
]>
<SEASON>
<YEAR>1998</YEAR>
Major League Baseball
</SEASON>
我們最后是不接受這樣的文檔的。但是此時它是合法的,因為SEASON 被聲明為可以接受ANY 內(nèi)容。大多數(shù)時候,在定義一
個元素的所有子元素之前以ANY 代替一個元素,就比較容易起步。然后再用實際的子元素來替換ANY。
您可以向清單8-6 上附加一份簡單的樣式單,如第4 章中創(chuàng)建的baseballstats.css,如清單8-7 所示。然后將其裝入Web
瀏覽器,結(jié)果顯示在圖8-7 中。baseballstats.css 樣式單包含一些沒有出現(xiàn)在DTD 或是清單8-7 列出的文檔部分中的元素
的樣式規(guī)則,但這沒有問題。Web 瀏覽器會忽略任何文檔中沒有的元素的樣式規(guī)則。
清單8-7:包含樣式單、一個YEAR 元素和正常文本的合法文檔
<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/css" href="greeting.css"?>
<!DOCTYPE SEASON [
<!ELEMENT YEAR (#PCDATA)>
<!ELEMENT SEASON ANY>
]>
<SEASON>
<YEAR>1998</YEAR>
Major League Baseball
</SEASON>
XML 實用大全
第 202 頁
圖8-7 在Internet Explorer 5.0 中顯示的包含樣式單、YEAR 元素和正常文本的文檔
8.5.3 子元素列表
由于SEASON 元素被聲明為可以接受任何元素作為子元素,因而可以接受各種各樣的元素。當(dāng)遇到那些多多少少有些非結(jié)構(gòu)
化的文本,如雜志文章時,這種情況就很有用。這時段落、副欄、項目列表、序號列表、圖形、照片以及子標(biāo)題可出現(xiàn)在文
檔的任意位置。然而,有時可能想對數(shù)據(jù)的安排上多實行些規(guī)則和控制。例如,可能會要求每一個LEAGUE 元素有一個
LEAGUE_NAME 子元素,而每個PLAYER 元素要有一個GIVEN_NAME 和SURNAME 子元素,并且GIVEN_NAME 要放在SURNAME 之前。
為了聲明LEAGUE 元素必須有一個名稱,只要聲明LEAGUE_NAME 元素,然后在LEAGUE 聲明后的括號內(nèi)加入LEAGUE_NAME,如
下面這樣:
<!ELEMENT LEAGUE (LEAGUE_NAME)>
<!ELEMENT LEAGUE_NAME (#PCDATA)>
中國航空網(wǎng) m.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(62)