2015-04-05 44 views
0

在給出項目列表時,XML文件在將它們包含在多個標記中時很常見。例如:XML文件中多個項目的約定

<system> 
    <version>2</version> 
    <title>The system</system> 
    <items> 
     <item id="1">one</item> 
     <item id="2">two</item> 
     <item id="3">three</item> 
     <item id="4">four</item> 
    </items> 
    <link>stackoverflow.com</link> 
</system> 

,而似乎更簡單,我寫

<system> 
    <version>2</version> 
    <title>The system</system> 
    <item id="1">one</item> 
    <item id="2">two</item> 
    <item id="3">three</item> 
    <item id="4">four</item> 
    <link>stackoverflow.com</link> 
</system> 

是否有一個很好的理由在什麼已經是一個冗長的形式額外verbage?

回答

1

好問題。我認爲答案在於如何將其映射到另一種語言或以編程方式訪問XML。在大多數語言中,可以創建一個包含具有不同名稱的多個字段的結構,或包含具有相同值的多個實例的數組。將<system>描述爲struct類型並將items描述爲array類型要容易得多。

另請參閱用於從解析的XML數據結構中提取數據的API。他們通常允許您通過名稱或位置訪問。當你知道所有的元素是同一類型的時候,把事情定位出來是最有意義的。

1

這兩種形式經常遇到,並沒有壓倒一切的好處。添加包裝元素使得在某些語言中處理更容易一些。包裝元素有時也是命名關係的機會,例如, (一個不好的例子,但想到的那個)

<person name="X"> 
    <sons> 
    <person ref="e"/> 
    <person ref="f"/> 
    </sons> 
    <daughters> 
    <person ref="p"/> 
    <person ref="q"/> 
    </daughters> 
</person>