Не так давно на страницах "Компьютерных вестей" я рассказал об альтернативном вездесущему 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
Комментарии