YAML - Процессы
YAML следует стандартной процедуре для потока операций. Собственная структура данных в YAML включает простые представления, такие как узлы. Его также называют графом узлов представления.
Он включает отображение, последовательность и скалярные величины, которые сериализуются для создания дерева сериализации. При сериализации объекты преобразуются потоком байтов.
Дерево событий сериализации помогает в создании представления символьных потоков, как показано на следующей диаграмме.
Обратная процедура анализирует поток байтов в сериализованное дерево событий. Позже узлы преобразуются в граф узлов. Эти значения позже преобразуются в собственную структуру данных YAML. Рисунок ниже объясняет это -
Информация в YAML используется двумя способами: machine processing и human consumption. Процессор в YAML используется как инструмент для процедуры преобразования информации между дополнительными представлениями на диаграмме, приведенной выше. В этой главе описываются информационные структуры, которые процессор YAML должен предоставлять в данном приложении.
YAML включает процедуру сериализации для представления объектов данных в последовательном формате. Обработка информации YAML включает три этапа:Representation, Serialization, Presentation and parsing. Обсудим подробно каждый из них.
Представление
YAML представляет структуру данных с использованием узлов трех типов: sequence, mapping и scalar.
Последовательность
Последовательность относится к упорядоченному количеству записей, которое отображает неупорядоченную ассоциацию пары ключ-значение. Он соответствует списку массивов Perl или Python.
Код, показанный ниже, является примером представления последовательности -
product:
- sku : BL394D
quantity : 4
description : Football
price : 450.00
- sku : BL4438H
quantity : 1
description : Super Hoop
price : 2392.00
Картография
С другой стороны, отображение представляет собой структуру данных словаря или хеш-таблицу. Пример того же упомянут ниже -
batchLimit: 1000
threadCountLimit: 2
key: value
keyMapping: <What goes here?>
Скаляры
Скаляры представляют собой стандартные значения строк, целых чисел, дат и атомарных типов данных. Обратите внимание, что YAML также включает узлы, которые определяют структуру типа данных. Дополнительную информацию о скалярах см. В главе 6 этого руководства.
Сериализация
В YAML требуется процесс сериализации, который упрощает понятный для человека порядок ключей и имена привязок. Результатом сериализации является дерево сериализации YAML. Его можно пройти, чтобы произвести серию вызовов событий данных YAML.
Пример для сериализации приведен ниже -
consumer:
class: 'AppBundle\Entity\consumer'
attributes:
filters: ['customer.search', 'customer.order', 'customer.boolean']
collectionOperations:
get:
method: 'GET'
normalization_context:
groups: ['customer_list']
itemOperations:
get:
method: 'GET'
normalization_context:
groups: ['customer_get']
Презентация
Окончательный результат сериализации YAML называется презентацией. Он представляет собой поток символов в дружественной к человеку манере. Процессор YAML включает в себя различные детали представления для создания потока, обработки отступов и форматирования содержимого. Этот полный процесс определяется предпочтениями пользователя.
Примером процесса представления YAML является результат созданного значения JSON. Обратите внимание на код, приведенный ниже, для лучшего понимания -
{
"consumer": {
"class": "AppBundle\\Entity\\consumer",
"attributes": {
"filters": [
"customer.search",
"customer.order",
"customer.boolean"
]
},
"collectionOperations": {
"get": {
"method": "GET",
"normalization_context": {
"groups": [
"customer_list"
]
}
}
},
"itemOperations": {
"get": {
"method": "GET",
"normalization_context": {
"groups": [
"customer_get"
]
}
}
}
}
}
Парсинг
Парсинг - это обратный процесс представления; он включает в себя поток персонажей и создает серию событий. Он отбрасывает детали, представленные в процессе представления, который вызывает события сериализации. Процедура синтаксического анализа может завершиться ошибкой из-за неверного ввода По сути, это процедура проверки правильности формирования YAML.
Рассмотрим пример YAML, который упомянут ниже -
---
environment: production
classes:
nfs::server:
exports:
- /srv/share1
- /srv/share3
parameters:
paramter1
С тремя дефисами он представляет начало документа с различными атрибутами, определенными в нем позже.
YAML lint - это онлайн-анализатор YAML, который помогает анализировать структуру YAML, чтобы проверить, действительна она или нет. Официальная ссылка на YAML lint указана ниже:http://www.yamllint.com/
Вы можете увидеть результат синтаксического анализа, как показано ниже -