Элементы даты в XML - PullRequest
       28

Элементы даты в XML

2 голосов
/ 15 февраля 2009

Полагаю, есть два основных подхода к представлениям даты в XML:

<date>1984-10-27</date>

и

<date>
  <year>1984</year>
  <month>10</month>
  <day>27</day>
</date>

Лично я бы пошел на первое. Это более компактно и в то же время более читабельно. Разделение второй формы кажется мне излишним; например большую часть времени сам по себе месяц не будет иметь никакой информационной ценности.

Также вы не можете проверить такой элемент, как , независимо: вы можете определить диапазон [1..31], но 31 не приемлем, если равен 2.

С другой стороны, первая форма может вызвать путаницу, особенно если вы используете (FFF) MM-DD-YYYY или DD-MM-YYYY. Я всегда использую формат ISO 8601 (ГГГГ-ММ-ДД), чтобы избежать этой путаницы.

Какой XML-код вы предпочитаете?

Ответы [ 4 ]

6 голосов
/ 15 февраля 2009

Практический опыт научил меня, что самые простые значения даты для работы - это секунды с начала эпохи. Это значение переносимо на все языки и нечувствительно к часовому поясу (его будут обрабатывать ваши локальные библиотеки дат).

Что бы там ни было, XML предпочитает более подробные и удобочитаемые значения. Если вы хотите использовать удобочитаемое значение даты, я бы рекомендовал использовать стандартный формат времени, описанный в ISO 8601: http://www.w3.org/TR/NOTE-datetime.. Это однозначный и понятный во всем мире формат. Синтаксические анализаторы существуют для разных языков, и это, как правило, лучшее текстовое представление значений даты.

3 голосов
/ 15 февраля 2009

Стандарт для дат / времени в xml гораздо более формален, чем этот; большинство xml-анализаторов будут уважать (например):

  • 2009-02-15
  • 2009-02-15T10: 20: 34,0000000
  • 2009-02-15T10: 20: 34,0000000 + 00: 00

Это всегда yyyy-MM-dd; часть времени является необязательной, как и смещение UTC.

(редактировать: lucas-insasho правильно цитировал spec )

2 голосов
/ 16 февраля 2009

Хотя я согласен с lucas-insasho, что секунда с начала эпохи, как правило, является самым простым представлением даты / времени для работы, но в целом это не самое простое в работе с XML. Он не может быть обработан с помощью XSLT 1.0 и не может быть проверен с использованием XML-схемы.

Конечно, вы можете представлять данные в формате XML так, как хотите. Но на самом деле единственная причина использовать XML в первую очередь (вместо более легкого формата сериализации, такого как JSON или YAML) - это воспользоваться теми преимуществами, которые может предложить стандартизация.

0 голосов
/ 15 февраля 2009

Я голосую за расставание. Что не так с первым, который вы спросите?

  • - это тот день / месяц или месяц / день ... ошибки могут быть как человеческими, так и машинными
  • необходимо получить токен для получения информации о дате
  • вы храните символы форматирования (разделителя)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...