Копия для печати
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
Обсуждение статьи (записей: 2)