#xml #tree #depth
#xml #дерево #глубина
Вопрос:
Я создаю 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:
Я думаю, очень маловероятно, что различия в производительности должны влиять на ваш выбор между этими проектами. Однако вы ничего не сказали о своих требованиях к производительности и ограничениях, так что это всего лишь предположение.
Я думаю, что основные факторы, которые должны влиять на дизайн, заключаются в том, что значение должно быть самоочевидным для читателя-человека, что обработка данных должна быть простой, и что генерирование данных должно быть простым.
Мне не нравится внешний вид «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 включает xs:time в формате hh: mm: ss и не включает ничего в формате hh: mm.
Комментарии:
1. Я добавил еще одну структуру, о которой говорил с другом. Просто интересно, что вы думаете об этом. Спасибо за ваше понимание XML, времени и атрибутов в сравнении с элементами, хотя это немного проясняет организацию.