В XML схемах есть такой замечательный тип - дата с часовым поясом. А как по такой дате понять, в каком же часовом поясе находится человек? Есть же летнее время.
По мере заполнения информации о сотрудниках появилась потребность указать, в каком часовом поясе находится офис (расширяемся). Но просто указывать смещение от Гринвича не достаточно, т.к. это смещение актуально только в данный момент времени. С переходом на летнее время картина изменится. Поэтому удобно завести такой атрибут, как часовой пояс.
Для заведения справочника часовых поясов можно использовать два подхода: завести справочник прямо в XML документе (как с департаментами) либо добавить простой тип с перечислением (как с должностями). Конечно же я пошёл вторым путём, хотя это как старые грабли, ещё со времён XDR - тогда я всё запихивал в схему. Но тут схема и так пухленькая, поэтому не в первой.
Конечно же я провёл сколько-то времени в изучении часовых поясов на сайте World Time Zone и понял, что процесс заполнения списка надо автоматизировать. Самое близкое - это найти источник под ногами, точнее в реестре Windows.
Структура реестра, который описывает часовые пояса, подробно изложена в MSDN, но разбирать её вручную нереально. Поэтому я написал программу (в которой заложил основы объектной обработки данных), которая данные из реестра записывала в виде XML (TZVista.xml). Ну и конечно же такой XML должен иметь схему. Так вот появилась схема TimeZone.xsd.
Про саму схему особо нечего рассказывать - повторяет структуру реестра. День недели и месяц перехода описал в виде перечисления, многоязыковые названия. Да, чтобы получить названия поясов на разных языках, я использовал обновления для Vista.
пятница, 15 февраля 2008 г.
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий