UnityYAML
Unity использует оптимизированную библиотеку YAML под названием UnityYAML. Библиотека UnityYAML не поддерживает полную спецификацию YAML. В этой документации описывается, какие части спецификации YAML поддерживает UnityYAML.
Вы не можете создавать или редактировать файлы UnityYAML извне.
Поддерживаемые функции
| Особенности | Поддержка |
|---|---|
| Картографирование | UnityYAML поддерживает как потоковые, так и блоковые стили. |
| Скалярные функции | UnityYAML поддерживает скаляры в двойных и одиночных кавычках, а также простые скаляры. Вы можете разделить их на несколько строк. Обратите внимание, что многострочные скаляры могут создавать нагрузку на производительность и память во время анализа. Простые скаляры, разделенные на несколько строк, должны иметь отступ больше, чем предыдущая строка. См. пример ниже в таблице. Вы можете использовать UTF–8 символов в скалярах, но UnityYAML декодирует их только тогда, когда они являются частью скаляра в двойных кавычках. |
| Последовательности | UnityYAML поддерживает сопоставления, стили блоков и последовательности блоков, содержащие сопоставления блоков. |
Пример отступов на многолинейных простых скалярах:
parent: This is a
multi-line scalar
^
|
Если нет отступов, то скальное число возвращает This is a и может вызвать дальнейший анализ объекта.
Неподдерживаемые функции
| Особенности | Поддержка |
|---|---|
| Индикаторы хода | UnityYAML не поддерживает использование символов + и | для указания того, как он должен обращаться с новыми строками в многострочной строке. Если вы используете эти символы, UnityYAML добавляет их к скалярному значению. |
| Комментарии | UnityYAML не поддерживает комментарии. |
| Комплексные ключи отображения | UnityYAML не поддерживает сложные ключи сопоставления. |
| Несколько документов | Считыватель пропускает префиксы документов и тегов в начале файлов, но не обрабатывает ввод YAML, который состоит из нескольких документов. |
| Последовательности необработанных блоков | Почти все узлы являются частью сопоставления в UnityYAML, так что все последовательности должны быть значениями сопоставления, чтобы работать правильно. См. пример ниже в таблице. Анонимные последовательности увеличивают сложность анализатора. Вы не можете использовать отступ как способ определения того, закончился ли элемент последовательности в UnityYAML. |
| Теги | UnityYAML не поддерживает теги. |
Пример необработанной блоковой последовательности
var:
- 1
- 2
- 3
Последовательность предназначена для поиска по var, так что следующее не работает:
- 1
- 2
- 3