2011-10-12 14 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