Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - YAML - Легкость для чтения и записи04 июня 2011Оглавление: 1. YAML 2. Легкость для чтения и записи 3. Синтаксические элементы 4. Реализации Синтаксис YAML минимален, особенно по сравнению с XML синтаксисом. В спецификации указывают, что большое влияние оказал стандарт RFC 822. ИспользованиеYAML в основном используется как формат для файлов конфигурации. Применяется для настройки веб-каркасов Ruby on Rails, Symfony, GAE framework и Google App Engine. ПримерВ некотором проекте нужно хранить конфигурацию, описывающую отображение текстовых команд на функции, с помощью регулярных выражений. Можно представить эту структуру простым текстом, типа конфигурационного файла от древней UNIX-программы: PRIVMSG newUri ^http://.* PRIVMSG deleteUri ^delete.* PRIVMSG randomUri ^random.* Тогда расходы на разметку минимальны, но все становится очень негибко значения не могут включать пробелы, не могут быть многострочными и т. п. Подходит только в простых случаях. В 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> Конечно, можно сделать более «дешёвое» отображение с использованием атрибутов: <event name="PRIVMSG"> <method name="newUri" regex="^http://.*" /> <method name="deleteUri" regex="^delete.*" /> <method name="randomUri" regex="^random.*" /> </event> Теперь то же самое на YAML: event: PRIVMSG methods: - name: newUri regexp: '^http://.*' - name: deleteUri regexp: '^delete.*' - name: randomUri regexp: '^random.*' Говоря об отличиях YAML от XML, отметим также, что вложенные XML элементы могут использоваться для отображения произвольных структур, а YAML более близок к отображению типичных моделей данных из Perl, Python, Java, позволяя описывать свободные сочетания последовательностей, сопоставлений и скалярных типов то есть ближе к реальным структурам данных языков программирования, и не требует различных соглашений про DOM-отображения структур данных на документы и обратно, как требуется в XML. Просмотров: 3647
|