Это более глубокий ответ, чем у Джонатана (что в противном случае верно).
Формат Yaml больше похож на json, чем на xml.Yaml и json предназначены для простого представления основных, но часто используемых структур данных, распространенных в большинстве языков (и распространенных в языках сценариев).Xml спроектирован как язык разметки и мета-спецификация с множеством функций, облегчающих смешивание различных типов документов.
Самыми основными и наиболее часто используемыми контейнерами в Yaml являются последовательности и карты.В языках программирования последовательности часто называют списками или массивами, а карты часто называют словарями, хэшами, хэш-картами или массивами (что странно; я смотрю на вас PHP).
Таким образом, ваш документ эквивалентендокумент yaml / json (допустим для обоих типов):
{"style": {"name": "Retro"}, "style": {"name": "Nouveau"}, "style": {"name": "Plain"}}
Если вы знаете json или любой другой язык с картами в стиле {}, то довольно легко понять, в чем проблема.Запись в ruby будет выглядеть следующим образом:
{"style" => ..., "style" => ..., "style" => ...}
Последняя пара ключ / значение перезаписывает предыдущую, и к предыдущей невозможно добраться.И поэтому вам нужно изменить формат документа.
Предложение 1
Предложение Джонатана Джулиана довольно хорошо:
Retro:
type: style
Nouvaeu:
type: style
Plain:
type: style
Предложение 2
Я бывозможно, используйте что-то вроде:
styles:
Retro:
Nouvaeu:
Plain:
Или просто полностью исключите "стили", если это подразумевается контекстом.
Предложение 3
Другой пример, который больше похож на xmlдолжен использовать !! pair
!!pair
- style:
name: Retro
- style:
name: Nouveau
- style:
name: Plain
Это более или менее (в зависимости от синтаксического анализатора / языка) эквивалентно структуре данных:
[("style", {"name": "Retro"}),
("style", {"name": "Nouveau"}),
("style", {"name": "Plain"})]