Looking for yaml Answers? Try Ask4KnowledgeBase
Looking for yaml Keywords? Try Ask4Keywords

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
 

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

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

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
 

Комментарии

# 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)
 

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

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

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

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

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

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

    а. space: "& # x20;"

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

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

  2. Unicode Escapes

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

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

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

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

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

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

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

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

- 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

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

- Cat
- Dog
- Goldfish
 

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

-
 - Cat
 - Dog
 - Goldfish