«Правильный» формат XML / производительность глубины дерева - PullRequest
1 голос
/ 12 октября 2011

Я создаю файл 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>

1 Ответ

1 голос
/ 13 октября 2011

Маловероятно, что различия в производительности должны влиять на ваш выбор между этими проектами.Однако вы ничего не сказали о своих требованиях и ограничениях к производительности, так что это всего лишь предположение.

Я думаю, что основные факторы, которые должны влиять на дизайн, заключаются в том, что значение должно быть самоочевидным для читателя-человека.обработка данных должна быть простой, а генерация данных - легкой.

Мне не нравится, когда в качестве имен элементов отображаются «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-схемы включает в себя xs: время в формате чч: мм: сс и ничего не включает в формате чч: мм.

...