YAML и XF: еще две альтернативы XML

Не так давно на страницах "Компьютерных вестей" я рассказал об альтернативном вездесущему XML формате представления данных - JSON. Однако JSON - не единственная из существующих альтернатив для формата XML. И именно о них я сейчас расскажу.


YAML

YAML - это рекурсивная аббревиатура, которая расшифровывается как "YAML Ain't Markup Language" (по-русски это будет звучать как "YAML не является языком разметки"). Чем он при этом является, правда, его создатели уточнять не берутся, но, пожалуй, определение "язык разметки" будет всё-таки довольно подходящим. Чем YAML отличается от XML? Компактностью представления данных и удобством их редактирования для человека. Для того, чтобы эти утверждения не выглядели голословными, приведу пример одних и тех же данных, записанных в XML и YAML. Сначала XML-версия:

<bindings>
 <binding>
  <ircEvent>PRIVMSG</ircEvent>
  <method>newUri</method>
  <regex>^http://.*</regex>
 </binding>
 <binding>
  <ircEvent>PRIVMSG</ircEvent>
  <method>deleteUri</method>
  <regex>^delete.*</regex>
 </binding>
 <binding>
  <ircEvent>PRIVMSG</ircEvent>
  <method>randomUri</method>
  <regex>^random.*</regex>
 </binding>
</bindings>

А теперь YAML:

 
--
-
- PRIVMSG
- newUri
- '^http://.*'
-
- PRIVMSG
- deleteUri
- ^delete.*
-
- PRIVMSG
- randomUri
- ^random.*

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

YAML - это не просто хорошая "придумка", а реально применяющаяся на практике технология. Он активно применяется в разных файлах конфигурации разных приложений, используется в быстро набирающем популярность фрэймворке Ruby On Rails.


XF

Это название расшифровывается уже безо всякой рекурсии. XF - это просто eXchange Format, т.е. формат обмена данными. Он, в целом, довольно похож на JSON по своей структуре, хотя имеет и отличия. Вот пример описания данных с помощью XF:

"Фигура 1": "квадрат" {
 x = 100;
 y = 150;
 "сторона" = 300;
}
"Фигура 2": "круг" {
 x = 200;
 y = 300;
 "радиус" = 200;
 "цвета" {
  "закрашен" = "да";
  "цвет-окружности" = "красный";
  "цвет-фона" = "зеленый";
 }
}

Здесь, как видите, в отличие от XML и YAML, используется способ записи, позаимствованный во многом из C-подобных языков программирования. Надо признать, что для человека он действительно более удобен, чем XML или YAML, хотя YAML всё же занимает меньше места.


Дополнительная информация

Официальный сайт YAML - www.yaml.org. Там можно найти различные библиотеки для работы с этим форматом из разных языков программирования, узнать подробную спецификацию YAML.

Что касается XF, то здесь адрес официального сайта таков: www.xfhome.org. Содержание сайта, в принципе, аналогично сайту YAML.

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

Вадим СТАНКЕВИЧ,
dreamdrusch@tut.by

Версия для печатиВерсия для печати

Номер: 

01 за 2008 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!
 

Комментарии

Аватар пользователя Andy
Как-то вы странно XML в YAML конвертируете. Совершенно и абсолютно неправильно.
Аватар пользователя Вадим Станкевич
А как правильно?