YAML следует стандартной процедуре для процесса. Собственная структура данных в YAML включает простые представления, такие как узлы. Он также называется графом узла представления.
Он включает в себя отображение, последовательность и скалярные величины, которые сериализуются для создания дерева сериализации. При сериализации объекты конвертируются с потоком байтов.
Дерево событий сериализации помогает в создании представления символьных потоков, как показано на следующей диаграмме.
Обратная процедура анализирует поток байтов в сериализованное дерево событий. Позже узлы преобразуются в граф узлов. Эти значения позже преобразуются в собственную структуру данных YAML. Рисунок ниже объясняет это —
Информация в YAML используется двумя способами: машинная обработка и потребление человеком . Процессор в YAML используется в качестве инструмента для процедуры преобразования информации между дополнительными представлениями на диаграмме, приведенной выше. В этой главе описываются информационные структуры, которые процессор YAML должен предоставлять в данном приложении.
YAML включает процедуру сериализации для представления объектов данных в последовательном формате. Обработка информации YAML включает три этапа: представление, сериализация, представление и синтаксический анализ . Давайте обсудим каждый из них подробно.
Представление
YAML представляет структуру данных, используя три вида узлов: последовательность, отображение и скаляр .
Последовательность
Последовательность относится к упорядоченному количеству записей, которое отображает неупорядоченную связь пары ключ-значение. Это соответствует списку массивов 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/
Вы можете увидеть результат анализа, как показано ниже —