yamlНачало работы с yaml

замечания

YAML является рекурсивным акронимом для « Y AML A in't M arkup L anguage». Он является стандартизированным для чтения человеком стандартом для всех языков программирования.

Версии

Версия Дата выхода
1,0 2004-01-29
1,1 2005-01-18
1.2 2009-10-01

Базовый синтаксис Yaml

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

Комментарии начинаются с # и идут до новой строки, комментарии должны быть отделены от других токенов пробелом. Пробелы не свободны, отступы должны быть пробелами, а не вкладками. YAML будет считать, что в нем содержатся строки с префиксом большего количества пробелов, чем родительский ключ. Более того, все строки должны иметь префикс с тем же количеством пробелов, которые принадлежат к одной и той же карте.

YAML имеет последовательности и отображения в качестве типов сбора, оба могут быть представлены в поточном и блочном стиле.

Последовательность скалярных строк в YAML выглядит так:

[ one, two, three ]   # flow style

# or block style

- one
- two
- three

Отображение состоит из пар ключ / значение:

index: 4  # block style
name: nali

# or 

{ index: 4, name: nali }   # flow style

# or nested (equivalent of { level: { one: { two: fun } } }):

level:

  one:

    two: fun

Основные типы YAML

integer: 25
string: "25"
float: 25.0
boolean: true
null type: null

Последовательные данные YAML

Тот же уровень списка:

- Cat
- Dog
- Goldfish

Вложенный список:

-
 - Cat
 - Dog
 - Goldfish

Комментарии

# This comment occupies a whole line
- some item # This comment succeeds content of a line
- http://example.com/#nocomment
- "This # does not introduce a comment."
- |
    This is a block scalar.
    A # inside it does not introduce a comment.
   # unless it is less indented than the first line (this is one)

Обратите внимание, что для # чтобы ввести комментарий, он должен либо

  • встречаются в начале строки или
  • предшествуют пробелы.

# должно всегда следовать пробелы. # внутри цитируемых скаляров никогда не начинаются комментарии. # может вводить комментарии в конце сканеров блоков, но, следовательно, он должен быть меньше отступов, чем базовый отступ блока блока (который обычно определяется отступом его первой непустой строки).

Сопоставление блоков

С неявными ключами:

key: value
another key:
  - some
  - more
  - values
[1, 2, 3]: last value, which has a flow style key

С неявными и явными ключами:

? key
: value
another key:
  - some
  - more
  - values
? [1, 2, 3]
: last value, which has a flow style key

key , another key и [1, 2, 3] являются ключами одного и того же сопоставления, хотя они используют разные стили ключей.


Вложенные сопоставления:

first level:
  second level:
    ? third level
    :
      forth level: value of implicit key
    ? third level, second key
    : value of explicit key
  ?
    mapping as: key of
    another: mapping
  : scalar value of mapping key
first level, second key:
  last value

Разделение текстовых строк на несколько строк

- Without quotes:
   You can just
   split a long piece of text like this.
- With quotes:
    "[But be careful:
     if you \"need\" punctuation, put double quotes around it. You can ev\
     en split without spaces by using backslashes."
- Or single quotes:
    'This works
     but isn''t as flexible'
- If you want to keep those new line characters: | 
    Then do
    it this way with 
    a pipe (|) character. (This string has three \n characters)
- Or you can have just the one final new line: >
    This string has
    just one \n character, at the very end.
- Block indicators:
    Look up >-, >+, |- and |+ for fine tuning.

Экранирование персонажей

YAML поддерживает три стиля обозначения выхода:

  1. Сбой сущностей

    а. space: "& # x20;"

    б. двоеточие: "& # 58;"

    с. амперсанд: «& amp;»

  2. Unicode Escapes

    а. пространство: "\ u0020"

    б. одинарная кавычка: "\ u0027"

    с. двойная кавычка: "\ u0022"

  3. Котируемые экраны

    а. двойная кавычка в одиночной кавычке: «Я всегда ложь», истинное утверждение?

    б. вложенная двойная цитата: «Она сказала:« Я ухожу »

    с. вложенная одинарная цитата: «Он потерял дар речи: