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