XML 中沒(méi)有規(guī)定哪些必須放在屬性或者子元素,因此使用哪種方式都是可以實(shí)現(xiàn)的。這取決于個(gè)人的經(jīng)驗(yàn)和喜好。在可以使用元素也可以使用屬性的兩選一的情況下,個(gè)人更傾向于使用子元素。主要理由如下: 1. 屬性不易擴(kuò)展,只能支持簡(jiǎn)單數(shù)據(jù)類(lèi)型。如果要定義的數(shù)據(jù)項(xiàng)將來(lái)可能擴(kuò)展為復(fù)雜數(shù)據(jù)對(duì)象時(shí),則應(yīng)毫不猶豫地使用子元素。 2. 子元素在XML文檔中更容易解析。 3. 相對(duì)屬性定義方式,用元素來(lái)定義會(huì)顯的更正式更重要。 4. 人看起來(lái),用元素定義的文檔比屬性定義的文檔更好理解。 什么時(shí)候使用屬性來(lái)定義信息呢?個(gè)人認(rèn)為,一個(gè)XML文檔中,要對(duì)信息進(jìn)行分類(lèi),一類(lèi)是以交換為目的的數(shù)據(jù)(這些數(shù)據(jù)可能會(huì)被重新使用和修改),一類(lèi)是以展現(xiàn)或輔助交換為目的的數(shù)據(jù)(這類(lèi)數(shù)據(jù)重要程度不高)。如果是前者,則使用元素來(lái)定義;如果是后者,則使用屬性來(lái)定義。另外,如果信息的數(shù)據(jù)類(lèi)型是原子數(shù)據(jù)類(lèi)型,如:令牌類(lèi)型等,這種類(lèi)型不可能再有擴(kuò)展,因此可以使用屬性來(lái)定義。
國(guó)外文章給出的參考意見(jiàn)是: 1. 如果這個(gè)信息是可以用元素來(lái)定義清楚的,則使用元素方式來(lái)定義。 2. 如果這個(gè)信息命名對(duì)于一個(gè)元素來(lái)說(shuō),最終可能出現(xiàn)多個(gè),則使用元素來(lái)定義。 3. 如果這個(gè)信息在DTD中被要求作為一個(gè)明確的屬性類(lèi)型,如:ID、IDREF, 或 ENTITY,則使用屬性來(lái)定義。 4. 如果這個(gè)信息可能含有空格時(shí),使用元素來(lái)定義。
|
|
來(lái)自: instl > 《待分類(lèi)》