“正确” XML 格式/树深度性能

发布于 2024-12-09 05:51:47 字数 2063 浏览 3 评论 0原文

我正在构建一个 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>

I am building an XML file to hold the schedule of a ferry to import into an Android application and have developed three XML tree structures, but looking for an opinion on which to use based on performance and/or correct XML format. The three structures are below and in the end they will be imported into an array that I will search for the next ferry time.

Thank you in advance for your help.

Revised XML Tree - Better?

<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 Tree 1:

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

XML Tree 2:

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

XML Tree 3:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寄人书 2024-12-16 05:51:47

我认为,性能差异不太可能影响您在这些设计之间的选择。但是,您还没有说明您的性能要求和限制,所以这只是一个猜测。

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

我不喜欢“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 格式的任何内容。

It is very unlikely, I think, that performance differences should influence your choice between these designs. However, you haven't said anything about your performance requirements and constraints, so that's just a guess.

I think the main factors that should influence the design are that the meaning should be self-evident to the human reader, that processing the data should be easy, and that generating the data should be easy.

I don't like the look of "Monday" and "StGeorge" as element names. Element names in general should be types, not instances.

I think I would flatten it:

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

If I were to group the data, I think I would be more likely to group it by departure point rather than by day of the week, but I can't think of a good reason for feeling that way, other than the instinct that schedules for different days of the week are likely to be similar.

The inclusion of seconds in the time value seems slightly ridiculous, but XML Schema's "judiciously chosen" set of data types includes xs:time in hh:mm:ss format, and doesn't include anything in hh:mm format.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文