2012-01-14 102 views
1

建立用於返回名稱/值pais列表的XML標記的優先版本是什麼?如何構建XML文件?

<variables> 
    <item>ok</item> 
    <another>123</another> 
    <catch>me</catch> 
</variables> 

<variables> 
    <variable name="item" value="ok"/> 
    <variable name="another" value="123"/> 
    <variable name="catch" value="me"/> 
</variables> 

我認爲第二種形式比較好,但是否有任何官方W3C建議或「德興模式」?

回答

1

我不認爲有這樣做的任何「官方」方式。但對我個人而言,這取決於這些元素/變量的含義。他們是否應該表現出彼此根本不同的行爲?或者它們的功能相同,只有參數不同?

在你的例子中,它們的功能似乎是相同的 - 它們只是變量。它們的參數不同 - 名稱和值。因此,我會說第二種形式更好,因爲你想以同樣的方式處理它們 - 可能將它們加載到某種地圖或類似的地方,對吧?另一方面,如果他們的功能應該是不同的,那麼我會建議使用不同的標籤名稱。例如:

<post> 
    <content>Abc</content> 
    <comment>Xyz</comment> 
</post> 

是肯定比

<post> 
    <text type="content">Abc</text> 
    <text type="comment">Xyz</text> 
</post> 

由於內容和註釋是根本不同的實體,你可能要處理不同。

總而言之,它與OOP編程非常相似。你會爲每個變量創建一個單獨的類嗎?我不這麼認爲,你只需要創建一個名爲「Variable」的類,並用不同的構造函數參數來實例化它。另一方面,如果邏輯與第二個例子不同,那麼您可能更願意創建一個單獨的類(可能具有不同的字段)來存儲內容和評論。

+0

我明白了......因此對於像名稱/值變量這樣的實體(即使名稱不能被預測),應該優先使用語法。但是如果像這樣的實體是對象/元素的常見/強制性部分,最好將它用作標記。我行嗎? – ManieQ 2012-01-14 14:35:38

+0

我會這麼說,是的。只要問問自己,你是否想要以相同或不同的方式解釋/處理實體。內容/評論示例也可以使用變量方法:例如,如果您以完全相同的方式處理評論和帖子,並且它們唯一不同的地方是您用它標記的圖標(不太可能的場景,但可能)。 – Seramme 2012-01-14 14:38:38