Получение расписания в формате XML

Для веб-мастеров мы предусмотрели возможность автоматического получения расписания с нашего сайта в формате XML, что позволит публикацию расписания движения трамваев на своем сайте. Поскольку Вы получаете только данные, внешний вид и структуру отображения Вы будете определять сами. Таким образом, Вы получаете полную свободу в выборе того, как будет выглядеть расписание, тем самым не причиняя ущерб общему дизайнерскому решению сайта.

Обратите внимание, что все данные передаются в кодировке UTF-8. Если у Вас на сайте другая кодировка (например, windows-1251), то Вам нужно будет предварительно преобразовать данные в свою кодировку.

Получение данных происходит в два этапа.

Первый этап — получение списка расписаний: маршруты, дни недели, направления.

Эту информацию можно получить, используя следующую ссылку:
http://www.tagiltram.ru/services/schedule-xml/routes-list.xml.

Список маршрутов представляет собой узел <routes>, который содержит элементы <route>, описывающие возможные параметры и свойства каждого маршрута: его идентификатор, номер для вывода на страницу, идентификаторы дней недели, идентификаторы направлений, описания направлений.

Рассмотрим подробнее узел <route>.

Элемент <route> имеет два атрибута: id, содержащий идентификатор данного маршрута, и title, содержащий номер маршрута, который следует выводить на страницу пользователю. По идентификатору позже необходимо будет получать расписание данного маршрута. Что касается номера для вывода, то в большинстве случаев он совпадает с идентификатором. Однако, иногда бывают исключения, поскольку идентификатор имеет ограничения по набору символов, поэтому он используется только в служебных целях.

Внутри элемента <route> находится узел <days>, который содержит в себе список идентификаторов разных расписаний для данного маршрута в зависимости от дня недели. Такие идентификаторы расположены внутри элементов <day> и могут принимать следующие значения:

  • working — расписание для рабочего дня;
  • day-off — расписание для выходного дня;
  • mon-thu — расписание для рабочего дня с понедельника по четверг;
  • fri — расписание для пятницы.

Помимо элемента <days>, описание маршрута содержит элемент <directions>, обозначающее направления, для которых доступны расписания. Если строчка расписания соответствует полному обороту трамвая по маршруту (направления «туда» и «обратно»), в таких случаях список <directions> имеет один элемент <dir>, внутри которого располагается словесное описание направления.

Для маршрутов с длинным списком ключевых остановок на одном круге существует два расписания: в направлении «туда» и в направлении «обратно». В таком случае список <directions> содержит два элемента <dir>, каждый из которых имеет атрибут id, обозначающий идентификатор направления. Как и в случае с одним направлением, каждый такой элемент содержит в себе словесное описание направления.

Данный этап самодостаточен для составления оглавления расписания: указания маршрутов, дней недели и направлений.

Второй этап — получение конкретного расписания, исходя из выбранного маршрута, дня недели и направления.

Чтобы получить данные по конкретному расписанию, нужно сначала составить URL-адрес XML-файла, в котором непосредственно это расписание будет предоставлено.

URL такого файла выглядит следующим образом:
http://www.tagiltram.ru/services/schedule-xml/schedule.xml
Затем необходимо указать параметры, определяющие выбор нужного расписания (идентификаторы маршрута, дня недели и направления — параметры route, day и dir соответственно). Если какой-то из двух последних параметров может принимать единственное значение (например, направление только одно, т. е. «туда» и «обратно» в одном расписании), то его необходимо опустить. Параметры указываются по общепринятому правилу составления URL: к базовому URL файла добавляется знак вопроса, затем идут пары «параметр=значение», разделенные амперсандами. Так, URL для XML-файла с данными о расписании маршрута №12 для выходного дня в направлении «Пихтовые Горы — Островского» будет выглядеть следующим образом:
http://www.tagiltram.ru/services/schedule-xml/schedule.xml?route=12&day=day-off&dir=to-ostr

Если в процессе обработки запрошенных параметров и составления XML-файла с данными о расписании возникла предвиденная ошибка (неверный набор параметров, например), то возвращается XML-файл с элементом <error>, содержащий описание возникшей ошибки.

Рассмотрим структуру XML-файла с данными о расписании.

Внутри элемента <schedule> располагаются узлы <route> и <direction>, которые содержат в себе соответственно выводнимые пользователю на страницу выбранные номер маршрута и описание направления, для которых дается расписание.

Далее следует список <header>, который содержит в себе элементы заголовка таблицы расписания. Чаще всего там располагаются названия остановок, для которых приводится время. Каждый элемент обозначается узлом <hcell>, содержащий в себе наименование остановки.

Затем идет множество списков <row>, представляющий собой ряд таблицы (один ряд — один рейс трамвая в выбранном направлении). Элементы списка — узлы <cell>.

Чаще всего узел <cell> содержит в себе время прохождения трамвая через данную остановку (хотя в отдельных случаях там могут располагаться номер маршрута или поезда, в зависимости от специфики таблицы). Для пустых ячеек выводится значение EMPTY. Узел <cell> может иметь атрибут place, конкретизирующий название остановки, для которой приводится время (используется на парковых и отклоненных от общего маршрута рейсах).

Обращаем Ваше внимание, что использование данного сервиса допустимо только при указании ссылки (на веб-ресурсах — гиперссылки) на данный сайт.

При возникновении любых вопросов касаемо данного сервиса обращайтесь через форму «Задать вопрос».