DTD 教程
在XML中,并沒(méi)有規(guī)定何時(shí)使用屬性,以及何時(shí)使用子元素。
數(shù)據(jù)可以存儲(chǔ)在子元素或?qū)傩浴?/p>
讓我們來(lái)看下這些實(shí)例:
在第一個(gè)例子中"sex"是一個(gè)屬性。在后面一個(gè)例子中,"sex"是一個(gè)子元素。但是兩者都提供了相同的信息。
沒(méi)有特別規(guī)定何時(shí)使用屬性,以及何時(shí)使用子元素。我的經(jīng)驗(yàn)是在 HTML 中多使用屬性,但在XML中,使用子元素,會(huì)感覺更像數(shù)據(jù)信息。
我喜歡在子元素中存儲(chǔ)數(shù)據(jù)
下面的三個(gè)XML文檔包含完全相同的信息:
本例中使用"date"屬性:
本例中使用"date"元素:
本例中使用了擴(kuò)展的"date" 元素: (這是我最喜歡的方式):
你應(yīng)該避免使用屬性?
一些屬性具有以下問(wèn)題:
如果您使用屬性作為數(shù)據(jù)容器,最終的XML文檔將難以閱讀和維護(hù)。 嘗試使用元素來(lái)描述數(shù)據(jù)。只有在提供的數(shù)據(jù)是不相關(guān)信息時(shí)我們才建議使用屬性。
不要這個(gè)樣子結(jié)束(這不是XML應(yīng)該使用的):
規(guī)則總是有另外的
關(guān)于屬性的規(guī)則我有一個(gè)例外情況。
有時(shí)我指定的 ID 應(yīng)用了元素。這些 ID 應(yīng)用可在HTML中的很多相同的情況下可作為 NAME 或者 ID 屬性來(lái)訪問(wèn) XML 元素。以下實(shí)例展示了這種方式:
以上實(shí)例的XML文件中,ID是只是一個(gè)計(jì)數(shù)器,或一個(gè)唯一的標(biāo)識(shí)符,來(lái)識(shí)別不同的音符,而不是作為數(shù)據(jù)的一部分。
在這里我想說(shuō)的是,元數(shù)據(jù)(關(guān)于數(shù)據(jù)的數(shù)據(jù))應(yīng)當(dāng)存儲(chǔ)為屬性,而數(shù)據(jù)本身應(yīng)當(dāng)存儲(chǔ)為元素。