1

我正在构建一个 XML 文件来保存要导入 Android 应用程序的轮渡时间表,并开发了三个 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>
4

1 回答 1

1

我认为,性能差异不太可能影响您在这些设计之间的选择。但是,您没有说任何有关您的性能要求和约束的信息,所以这只是一个猜测。

我认为影响设计的主要因素是含义对人类读者来说是不言而喻的,处理数据应该容易,生成数据应该容易。

我不喜欢“Monday”和“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 的“明智选择”的数据类型集包含 hh:mm:ss 格式的 xs:time,并且不包含 hh:mm 格式的任何内容。

于 2011-10-12T22:54:14.370 回答