Если вы хотите, чтобы задачи выполнялись одна за другой, отображение - это неправильная структура данных. YAML определенно определяет, что порядок сопоставления ключей является деталью представления и не должен передавать информацию о контенте. Поэтому, если вы хотите, чтобы задачи выполнялись в определенном порядке c, используйте последовательность:
- !Drawer
uid: W1
cmd: out
- !Drawer
uid: W2
cmd: in
- !Heater
id: H1
duty: 5
temp: 4
time: 2
- !Heater
id: H2
duty: 1
temp: 33
time: 15
Я использовал теги YAML для указания типа задачи, как YAML различает разные типы данных , Вместо этого вы можете использовать встроенное отображение в каждом элементе последовательности, например:
- Drawer:
uid: W1
cmd: out
Если вы хотите использовать схему JSON для описания содержимого вашего файла, вы не можете использовать теги YAML, потому что они не являются JSON особенность. Однако, на самом деле, единственная реализация JSON Schema, которая работает с файлами YAML, находится в JavaScript, так что вы все равно не сможете использовать ее в C ++.