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.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
integer: 25
string: "25"
float: 25.0
boolean: true
null type: null
Тот же уровень списка:
- 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 поддерживает три стиля обозначения выхода:
Сбой сущностей
а. space: "& # x20;"
б. двоеточие: "& # 58;"
с. амперсанд: «& amp;»
Unicode Escapes
а. пространство: "\ u0020"
б. одинарная кавычка: "\ u0027"
с. двойная кавычка: "\ u0022"
Котируемые экраны
а. двойная кавычка в одиночной кавычке: «Я всегда ложь», истинное утверждение?
б. вложенная двойная цитата: «Она сказала:« Я ухожу »
с. вложенная одинарная цитата: «Он потерял дар речи: