2016-07-05 73 views
0

根據XML規範,編寫多維項目數組的佈局更正確嗎?以XML格式編寫2D點網格

這一個:

<Points> 
    <Row index="0"> 
    <V> 
     <X>110</X> 
     <Y>0</Y> 
    </V> 
    <V> 
     <X>109.5105</X> 
     <Y>3.0901</Y> 
    </V> 
    </Row> 
    <Row index="1"> 
    <V> 
     <X>110</X> 
     <Y>0</Y> 
    </V> 
    <V> 
     <X>109.5105</X> 
     <Y>3.0901</Y> 
    </V> 
    </Row> 
    ... 

或這一個?

<Points rows="4" columns="2"> 
    <V> 
     <X>110</X> 
     <Y>0</Y> 
    </V> 
    <V> 
     <X>109.5105</X> 
     <Y>3.0901</Y> 
    </V> 
    <V> 
     <X>110</X> 
     <Y>0</Y> 
    </V> 
    ... 

謝謝。

+0

類似:http://stackoverflow.com/questions/38197743/writing-2d-point-in-xml-format – abenci

回答

0

根據字面xml規範,這兩個都是同樣正確的。 xml規範並不關心xml的具體用法,只是它格式良好(所有標籤都關閉,沒有爲多個元素打亂起始/標籤等)。

只要爲自己的數據創建方案,我會選擇最接近底層數據格式的方案,因爲方案的用戶需要處理它。

就你的具體例子而言,數據表現爲一個連續的列表,它只有行和列作爲「計算」值,或者它表示爲一列點列表?你會想選擇最接近它的使用格式。


一些額外的注意事項:

  • 你的第一個格式將允許鋸齒格,每行可 有不同數量的點。
  • 第二種格式強制執行確切的 矩形形狀。
+0

也許我可以刪除'index =「0」'屬性,以便文件可以改變手動添加和刪除行? – abenci

+0

如果該文件是用戶可編輯的,那麼我也可能刪除它。請記住,XML規範無法保證兄弟節點的順序,因此解析器可以按任意順序返回它們。然而,我有**從來沒有**遇到一個解析器,它們以不同於它們列出的順序返回它們,所以它應該是安全的。 –