2009-08-24 72 views
1

我正在爲某些自定義日誌記錄設計XML。記錄器中有一部分開發人員可以向日志添加名稱 - 值對。我正在嘗試確定XML的外觀。我試圖確定名稱值對的名稱部分是否應該是一個屬性。 (我想是這樣)。這是我到目前爲止有:有關XML的一般風格問題

 

<ExtendedProperties> 
    <ExtendedProperty name="Name1">Value1</ExtendedProperty> 
    <ExtendedProperty name="Name2">Value2</ExtendedProperty> 
</ExtendedProperties 
 

其他選項(據我所知)是使值命名節點名稱:

<Name1>Value1</Name1> 
<Name2>Value2</Name2> 

我喜歡第一種方法(基於屬性的)更好因爲我可以更輕鬆地用XSD描述文檔,並且可以看到如何使用xpath或xquery訪問「ExtendedProperty」類型的所有元素。 (可用的名稱不是預定義的 - 它們可以是任何東西。)

但是,我沒有花太多時間開發XML模式。這對你們看起來是否正確?還有什麼我可能想考慮的嗎?

回答

2

可用名稱未預定義 - 它們可以是任何東西。

這使得無法使用第二個表格(與XML的架構) - 因爲你需要使用該方法

知道所有的有效名稱
0

如果您打算使用鍵值對元素集合,您的第一個選擇就是要走的路。

在這種情況下,您的元素是集合中的項目類型的名稱...您的屬性是關鍵...值是值。

例如:

<StringCollection> 
    <String name="stringOne">Something</String> 
    <String name="stringTwo">Something else</String> 
</StringCollection> 

你的第二個方法是未分組組非相關的元素......不是你想要的。

0

看起來不錯。你也可以(如果數值很簡單)包括支持短格式< ExtendedProperty name =「name」value =「value」/>。這就是它在Spring配置中的做法,例如