Каждый узел представления включает в себя две основные характеристики, называемые привязкой и тегом . Свойства узла могут быть указаны с содержимым узла, пропущенным из потока символов.
Основной пример представления узла следующий:
%YAML 1.1 --- !!map { ? &A1 !!str "foo" : !!str "bar", ? !!str &A2 "baz" : *a1 }
Узлы якоря
Свойство привязки представляет узел для будущей ссылки. Поток символов представления YAML в узле обозначается индикатором амперсанда (&) . Процессору 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" }
Содержание узла
Контент узла может быть представлен в виде потока или в формате блока. Содержимое блока распространяется до конца строки и использует отступ для обозначения структуры. Каждый вид коллекции может быть представлен в определенном едином стиле сбора потока или может рассматриваться как один блок. Следующий код объясняет это подробно —