YAML - примитивы синтаксиса
В этой главе вы узнаете о следующих аспектах синтаксических примитивов в YAML:
- Параметры производства
- Отступы
- Разделительные пространства
- Игнорируемый префикс строки
- Сгибание линий
Давайте разберемся в каждом аспекте подробно.
Параметры производства
Производственные параметры включают в себя набор параметров и диапазон допустимых значений, которые используются на конкретном производстве. Следующий список производственных параметров используется в YAML -
Отступ
Обозначается символом n или же mПоток символов зависит от уровня отступов входящих в него блоков. Многие производства параметризовали эти функции.
Контекст
Обозначается он c. YAML поддерживает две группы контекстов:block styles и flow styles.
Стиль
Обозначается s. Скалярное содержимое может быть представлено в одном из пяти стилей:plain, double quoted and single quoted flow, literal and folded block.
Чавканье
Обозначается он t. Блочные скаляры предлагают множество механизмов, которые помогают обрезать блок:strip, clip и keep. Chomping помогает форматировать новые строки строк. Используется блочное представление стиля. Процесс жевания происходит с помощью индикаторов. Индикаторы контролируют, какой вывод должен производиться с новой строкой строки. Новые строки удаляются с помощью(-) оператор и символы новой строки добавляются с помощью (+) оператор.
Пример процесса пережевывания показан ниже -
strip: |-
text↓
clip: |
text↓
keep: |+
text↓
Результат после анализа указанного примера YAML выглядит следующим образом:
Отступы
В потоке символов YAML отступ определяется как символ разрыва строки на ноль или более символов. Самым важным моментом, о котором следует помнить, является то, что отступ не должен содержать никаких символов табуляции. Символы в отступе никогда не следует рассматривать как часть информации о содержимом узла. Обратите внимание на следующий код для лучшего понимания -
%YAML 1.1
---
!!map {
? !!str "Not indented"
: !!map {
? !!str "By one space"
: !!str "By four\n spaces\n",
? !!str "Flow style"
: !!seq [
!!str "By two",
!!str "Still by two",
!!str "Again by two",
]
}
}
Результат, который вы можете увидеть после отступа, выглядит следующим образом:
{
"Not indented": {
"By one space": "By four\n spaces\n",
"Flow style": [
"By two",
"Still by two",
"Again by two"
]
}
}
Разделительные пространства
YAML использует пробелы для разделения токенов. Самое важное замечание: разделение в YAML не должно содержать символов табуляции.
Следующий фрагмент кода показывает использование разделительных пространств -
{ · first: · Sammy, · last: · Sosa · }
Синтаксис, показанный выше, дает вам следующий результат:
{
"\u00b7 last": "\u00b7 Sosa \u00b7",
"\u00b7 first": "\u00b7 Sammy"
}
Игнорируемый префикс строки
Пустой префикс всегда включает отступ в зависимости от типа скаляра, который также включает начальный пробел. Простые скаляры не должны содержать символов табуляции. С другой стороны, скаляры в кавычках могут содержать символы табуляции. Блочные скаляры полностью зависят от отступа.
Следующий пример показывает систематическую работу игнорируемого префикса строки -
%YAML 1.1
---
!!map {
? !!str "plain"
: !!str "text lines",
? !!str "quoted"
: !!str "text lines",
? !!str "block"
: !!str "text·®lines\n"
}
Результат, достигнутый для блочных потоков, выглядит следующим образом:
{
"plain": "text lines",
"quoted": "text lines",
"block": "text\u00b7\u00aelines\n"
}
Линия складывания
Сгибание строк позволяет разбивать длинные строки для удобства чтения. Чем больше короткие строки, тем лучше читаемость. Сворачивание строк достигается за счет учета исходной семантики длинной строки. В следующем примере демонстрируется перенос строк -
%YAML 1.1
--- !!str
"specific\L\
trimmed\n\n\n\
as space"
Вы можете увидеть вывод для переноса строк в формате JSON следующим образом:
"specific\u2028trimmed\n\n\nas space"