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"