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