2011-10-12 30 views
1

我建立一個XML文件來保存輪渡時間表導入到一個Android應用程序,並已開發了三種XML樹結構,而是尋找在其上的意見使用基於性能和/或正確的XML格式。三個結構在下面,最後它們將被導入到一個數組中,我將搜索下一個渡輪時間。「正確的」 XML格式/樹深度性能

非常感謝您的幫助。

修改後的XML樹 - 更好?

<FerrySchedule> 
    <Terminal name="St. George"> 
     <Schedule day="Monday"> 
      <DepartureTime>00:00:00</DepartureTime> 
      <DepartureTime>01:00:00</DepartureTime> 
     </Schedule> 
     <Schedule day="TuesdayFriday"> 
      <DepartureTime>00:00:00</DepartureTime> 
      <DepartureTime>00:30:00</DepartureTime> 
     </Schedule> 
    </Terminal> 

    <Terminal name="Whitehall"> 
     <Schedule day="Monday"> 
      <DepartureTime>00:30:00</DepartureTime> 
      <DepartureTime>01:30:00</DepartureTime> 

     </Schedule> 
     <Schedule day="TuesdayFriday"> 
      <DepartureTime>00:00:00</DepartureTime> 
      <DepartureTime>00:30:00</DepartureTime> 
     </Schedule> 
    </Terminal> 
</FerrySchedule> 

XML樹1:

<FerrySchedule> 
    <Monday> 
     <StGeorge> 
      <time>0000</time> 
      <time>0100</time> 
     </StGeorge> 
    </Monday> 
</FerrySchedule> 

XML樹2:

<FerrySchedule> 
    <Monday> 
     <boat depart="StGeorge">0000</boat> 
     <boat depart="StGeorge">0100</boat> 
    </Monday> 
</FerrySchedule> 

XML樹3:

<FerrySchedule> 
    <Monday> 
     <boat> 
      <depart>St. George</depart> 
      <time>0000</time> 
     </boat> 
     <boat> 
      <depart>St. George</depart> 
      <time>0100</time> 
     </boat> 
    </Monday> 
</FerrySchedule> 

回答

1

這是非常我認爲不太可能,性能差異會影響你在這些設計之間的選擇。然而,你沒有提到任何關於你的性能要求和限制,所以這只是一個猜測。

我覺得應該影響設計的主要因素是其含義是不言而喻的人類讀者,處理數據應該很容易,而且生成的數據應該很容易。

我不喜歡「星期一」和「StGeorge」的外觀爲元素名稱。一般來說元素名稱應該是類型,而不是實例。

我想我會壓平:

<FerrySchedule> 
     <boat depart="StGeorge" time="00:00:00" days="Mon"/> 
     <boat depart="StGeorge" time="01:00:00" days="Mon Wed Fri"/> 
</FerrySchedule> 

如果我組數據,我想我會更容易受到出發點羣它,而不是通過一週的日子,但我可以除了本週不同日子的時間安排可能相似的本能之外,沒有想到有這種感覺的好理由。

在時間值中包含秒數似乎有些荒謬,但XML Schema的「明智選擇」數據類型集合包括xs:hh:mm:ss格式的時間,並且不包含hh:mm格式的任何內容。

+0

我增加了一個結構,我跟一個朋友介紹。只是想知道你的想法可能是什麼。感謝您對XML,時間和屬性與元素的洞察力 - 使組織上的事情變得更加清晰。 – mattdonders