YAML - Свойства узла
Каждый узел представления включает две основные характеристики, называемые anchor и tag. Свойства узла могут быть указаны с содержимым узла, исключенным из потока символов.
Базовый пример представления узла следующий:
%YAML 1.1
---
!!map {
? &A1 !!str "foo"
: !!str "bar",
? !!str &A2 "baz"
: *a1
}
Якоря узлов
Свойство привязки представляет собой узел для использования в будущем. Символьный поток представления YAML в узле обозначаетсяampersand (&)индикатор. Процессору YAML не нужно сохранять имя привязки с составленными в нем деталями представления. Следующий код объясняет это -
%YAML 1.1
---
!!map {
? !!str "First occurence"
: &A !!str "Value",
? !!str "Second occurence"
: *A
}
Вывод YAML, созданный с помощью узлов привязки, показан ниже -
---
!!map {
? !!str "First occurence"
: !!str "Value",
? !!str "Second occurence"
: !!str "Value",
}
Теги узла
Свойство tag представляет тип собственной структуры данных, которая полностью определяет узел. Тег представлен с помощью (!) индикатор. Теги рассматриваются как неотъемлемая часть графа представления. В следующем примере подробно объясняются теги узлов -
%YAML 1.1
---
!!map {
? !<tag:yaml.org,2002:str> "foo"
: !<!bar> "baz"
}
Содержимое узла
Содержимое узла может быть представлено в виде содержимого потока или в формате блока. Содержимое блока простирается до конца строки и использует отступ для обозначения структуры. Каждый тип коллекции может быть представлен в отдельном стиле коллекции потока или может рассматриваться как единый блок. Следующий код подробно объясняет это -
%YAML 1.1
---
!!map {
? !!str "foo"
: !!str "bar baz"
}
%YAML 1.1
---
!!str "foo bar"
%YAML 1.1
---
!!str "foo bar"
%YAML 1.1
---
!!str "foo bar\n"