曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專營(yíng)店坑蒙拐騙欺詐消費(fèi)者
XML 實(shí)用大全
第 91 頁(yè)
5.2 屬性與元素的對(duì)比
何時(shí)使用子元素或?qū)傩詻](méi)有嚴(yán)格的規(guī)則可循,通常要看哪一種更適合自己應(yīng)用的需要。隨著經(jīng)驗(yàn)的增長(zhǎng)就會(huì)有一種感覺(jué),知
道在何時(shí)使用屬性比子元素更簡(jiǎn)單,反之亦然。一個(gè)好的經(jīng)驗(yàn)規(guī)則是數(shù)據(jù)本身應(yīng)當(dāng)存儲(chǔ)在元素中,而有關(guān)數(shù)據(jù)的信息(元數(shù)
據(jù))應(yīng)當(dāng)存儲(chǔ)在屬性中。不知道怎么做時(shí),就把信息放在元素中。
為區(qū)分?jǐn)?shù)據(jù)與元數(shù)據(jù),首先要問(wèn)自己是否會(huì)有一些讀者希望看到一條特別的信息。如果答案是肯定的,該信息應(yīng)當(dāng)包含在一
個(gè)子元素中。相反,則應(yīng)包含在一個(gè)屬性中。如果從該文檔中刪除所有標(biāo)記與屬性,文檔的基本信息應(yīng)當(dāng)還存在。屬性是放
置ID 號(hào)、URL、參考資料及其他與讀者不直接相關(guān)的信息的好地方。但是,把元數(shù)據(jù)作為屬性存儲(chǔ)的基本規(guī)則還有許多例外。
這些例外包括:
• 屬性不能很好地保持原文的結(jié)構(gòu)。
• 元素允許包括元元數(shù)據(jù)(有關(guān)信息的更深層次的信息)。
• 每個(gè)人對(duì)元數(shù)據(jù)和非元數(shù)據(jù)的理解是不一樣的。
• 面對(duì)以后的變化,元素更具擴(kuò)展性。
5.2.1 結(jié)構(gòu)化的元數(shù)據(jù)
需要特別記住的是元素可以有子結(jié)構(gòu)而屬性沒(méi)有。這使元素更加靈活,更方便我們將元數(shù)據(jù)編譯成子元素。例如,設(shè)想我們
在寫一篇論文,而且希望其中包含某件事情的出處,結(jié)果可能是這樣:
<FACT SOURCE="The Biographical History of Baseball,
Donald Dewey and Nicholas Acocella (New York:Carroll &
Graf Publishers,Inc.1995)p.169">
Josh Gibson is the only person in the history of baseball to
hit a pitch out of Yankee Stadium.
</FACT>
很明顯,信息“The Biographical History of Baseball, Donald Dewey and Nicholas Acocella(New York:Carroll &Graf
Publishers,Inc. 1995)p.169”是元數(shù)據(jù)。它不是事情本身而更像事情的有關(guān)信息。SOURCE 屬性暗含了許多子結(jié)構(gòu)。按照
下文的方法組織上面的信息可能更有效:
<SOURCE>
<AUTHOR>Donald Dewey</AUTHOR>
<AUTHOR>Nicholas Acocella</AUTHOR>
<BOOK>
<TITLE>The Biographical History of Baseball</TITLE>
XML 實(shí)用大全
第 92 頁(yè)
<PAGES>169</PAGES>
<YEAR>1995</YEAR>
</BOOK>
</SOURCE>
此外,使用元素代替屬性包含附加的信息更容易、直接,例如作者的e-mail 地址,可找到文檔的電子副本的URL,日?qǐng)?bào)特
刊的標(biāo)題或主題以及其他看似重要的信息等。
日期是另外一個(gè)常見的例子。與學(xué)術(shù)論文有關(guān)的一個(gè)常用的元數(shù)據(jù)是第一次收到論文的日期,它對(duì)建立發(fā)明創(chuàng)造的優(yōu)先權(quán)很
重要。在ARTICLE 標(biāo)記中很容易包含一個(gè)DATE 屬性,如下所示:
<ARTICLE DATE="06/28/1969">
Polymerase Reactions in Organic Compounds
</ARTICLE>
DATE 屬性中含有用/表示的子結(jié)構(gòu),如果要從屬性值中獲得該結(jié)構(gòu)要比讀取DATE 元素的子元素困難得多,如下所示:
<DATE>
<YEAR>1969</YEAR>
<MONTH>06</MONTH>
<DAY>28</DAY>
</DATE>
例如,使用CSS 或XSL 很容易將日期或月份格式化為看不見的形式,因此只會(huì)出現(xiàn)年份。請(qǐng)看下面使用CSS 的例子:
YEAR {display:inline}
MONTH {display:none}
DAY {display:none}
如果DATE 是作為屬性存儲(chǔ)的,幾乎沒(méi)有簡(jiǎn)單的辦法可以訪問(wèn)其中任何一部分。我們只有用一種類似ECMAScript 或Java 的
編程語(yǔ)言寫一個(gè)單獨(dú)的程序,才能分析其日期格式。使用標(biāo)準(zhǔn)的XML 工具和子元素做起來(lái)就比較容易。
另外,屬性句法顯得模糊不清,"10/11/1999"究竟表示10 月11 日還是11 月10 日?不同國(guó)家的讀者對(duì)它的理解是不同的。
即使語(yǔ)法分析程序能夠識(shí)別某種格式,但不能保證其他人能夠正確輸入日期。作此對(duì)照用XML 表示就不會(huì)摸棱兩可。
最后,使用DATE 子元素允許一個(gè)元素有多個(gè)日期。例如,學(xué)術(shù)論文通常要交還作者修改。在此情況下,記錄再次收到修改
過(guò)的論文的日期也很重要。例如:
XML 實(shí)用大全
第 93 頁(yè)
<ARTICLE>
<TITLE>
Maximum Projectile Velocity in an Augmented Railgun
</TITLE>
<AUTHOR>Elliotte Harold</AUTHOR>
<AUTHOR>Bruce Bukiet</AUTHOR>
<AUTHOR>William Peter</AUTHOR>
<DATE>
<YEAR>1992</YEAR>
<MONTH>10</MONTH>
<DAY>29</DAY>
</DATE>
<DATE>
<YEAR>1993</YEAR>
<MONTH>10</MONTH>
<DAY>26</DAY>
</DATE>
</ARTICLE>
再比如,在HTML 中,IMG 標(biāo)記的ALT 屬性被限定為一個(gè)單獨(dú)的文本字符串。雖然一幅圖片比成千的單詞更能說(shuō)明問(wèn)題,但
還是應(yīng)該用已標(biāo)記的文本來(lái)代替一個(gè)IMG 標(biāo)記。例如,考慮圖5-2 中的餅形圖。
XML 實(shí)用大全
第 94 頁(yè)
圖5-2 主要棒球聯(lián)賽中各位置球員的分布情況
使用ALT 屬性對(duì)該圖的最好描述如下:
<IMG SRC="IMAGE\05021.gif"
ALT="Pie Chart of Positions in Major League Baseball"
WIDTH="819" HEIGHT="623">
</IMG>
如果對(duì)上圖使用一個(gè)ALT 子元素描述,會(huì)更具靈活性,因?yàn)槲覀兛梢栽谄渲星度霕?biāo)記。例如,使用一個(gè)寫有相關(guān)數(shù)字的一覽
表去替代餅形圖:
<IMG SRC="IMAGE\05021.gif" WIDTH="819" HEIGHT="623">
<ALT>
<TABLE>
<TR>
<TD>Starting Pitcher</TD><TD>242</TD><TD>20%</TD>
中國(guó)航空網(wǎng) m.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實(shí)用大全(32)