2011-03-02 62 views
0

我目前正在編寫一個XML文檔,該文檔是爲只有2個級別的XML層次結構編寫的。現在,我想爲它添加一個一對多的分類,這會破壞與該文件一起工作的大部分代碼。在XML層次結構中添加一個屬性或創建一個新的級別?

我可以添加該分類作爲一個新的水平,或者我可以實現它作爲一個屬性在同一水平(幾乎像標籤)。

電流:

<category> 
    <subcategory></subcategory> 
<category> 

建議:

<supercategory> 
    <category> 
     <subcategory></subcategory> 
    </category> 
</supercategory> 

或:

<category supercategory=""> 
    <subcategory></subcategory> 
</category> 

哪種方法更容易維護?

+1

編輯您的文章,並顯示您當前並提出了結構的一些短的例子。 – 2011-03-02 19:24:26

回答

0

對我而言,XML的優勢之一就是XML元素的層次性非常適合描述對象的分層排列,比如你的情況。因此,我傾向於選擇第一個選項,因爲您的XML結構更類似於您的數據結構。這使得閱讀,管理和理解更容易,恕我直言。

也就是說,只有你真的可以說如果爲了使它與現有的代碼庫一起工作所需的額外努力是值得的。如果你認爲所需的修改太困難/耗時,肯定沒有什麼能夠停止你的第二種方式,我只是不認爲它是一個優雅的解決方案。

0

我認爲創造一個新的水平是更好的解決方案。它遵循你現有的方法(嵌套元素),這很好,你的第一個例子也有一個好處,即原始類別元素本身保持不變。

你也可以考慮一個遞歸定義。這可能是現在要考慮的一個更大的重構,但可能會避免未來的影響。你的類別是2級,現在他們是3,如果你移動到4,你需要添加一個SuperDuperCategory?

這個符號可能是一個另類:

<category> 
    <category> 
     <category></category> 
    </category> 
</category> 
相關問題