YAML - Procesos
YAML sigue un procedimiento estándar para el flujo de procesos. La estructura de datos nativa en YAML incluye representaciones simples como nodos. También se denomina Gráfico de nodo de representación.
Incluye mapeo, secuencia y cantidades escalares que se serializan para crear un árbol de serialización. Con la serialización, los objetos se convierten con un flujo de bytes.
El árbol de eventos de serialización ayuda a crear la presentación de los flujos de caracteres como se representa en el siguiente diagrama.
El procedimiento inverso analiza el flujo de bytes en un árbol de eventos serializado. Posteriormente, los nodos se convierten en gráfico de nodos. Estos valores se convierten posteriormente en la estructura de datos nativa YAML. La siguiente figura explica esto:
La información en YAML se usa de dos formas: machine processing y human consumption. El procesador en YAML se utiliza como herramienta para el procedimiento de conversión de información entre vistas complementarias en el diagrama que se muestra arriba. Este capítulo describe las estructuras de información que un procesador YAML debe proporcionar dentro de una aplicación determinada.
YAML incluye un procedimiento de serialización para representar objetos de datos en formato serial. El procesamiento de la información YAML incluye tres etapas:Representation, Serialization, Presentation and parsing. Analicemos cada uno de ellos en detalle.
Representación
YAML representa la estructura de datos utilizando tres tipos de nodos: sequence, mapping y scalar.
Secuencia
La secuencia se refiere al número ordenado de entradas, que mapea la asociación desordenada del par clave-valor. Corresponde a la lista de matrices de Perl o Python.
El código que se muestra a continuación es un ejemplo de representación de secuencia:
product:
- sku : BL394D
quantity : 4
description : Football
price : 450.00
- sku : BL4438H
quantity : 1
description : Super Hoop
price : 2392.00
Cartografía
El mapeo, por otro lado, representa la estructura de datos del diccionario o la tabla hash. Un ejemplo de lo mismo se menciona a continuación:
batchLimit: 1000
threadCountLimit: 2
key: value
keyMapping: <What goes here?>
Escalares
Los escalares representan valores estándar de cadenas, números enteros, fechas y tipos de datos atómicos. Tenga en cuenta que YAML también incluye nodos que especifican la estructura del tipo de datos. Para obtener más información sobre escalares, consulte el capítulo 6 de este tutorial.
Publicación por entregas
Se requiere un proceso de serialización en YAML que facilita el orden de claves amigables para humanos y los nombres de ancla. El resultado de la serialización es un árbol de serialización YAML. Se puede atravesar para producir una serie de llamadas a eventos de datos YAML.
A continuación se ofrece un ejemplo de serialización:
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']
Presentación
La salida final de la serialización YAML se llama presentación. Representa una corriente de personajes de una manera amigable con los humanos. El procesador YAML incluye varios detalles de presentación para crear secuencias, manejar la sangría y formatear el contenido. Este proceso completo está guiado por las preferencias del usuario.
Un ejemplo de proceso de presentación YAML es el resultado del valor JSON creado. Observe el código que se proporciona a continuación para una mejor comprensión:
{
"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"
]
}
}
}
}
}
Analizando
El análisis es el proceso inverso de presentación; incluye un flujo de personajes y crea una serie de eventos. Descarta los detalles introducidos en el proceso de presentación que provocan eventos de serialización. El procedimiento de análisis puede fallar debido a una entrada mal formada. Básicamente es un procedimiento para comprobar si YAML está bien formado o no.
Considere un ejemplo de YAML que se menciona a continuación:
---
environment: production
classes:
nfs::server:
exports:
- /srv/share1
- /srv/share3
parameters:
paramter1
Con tres guiones, representa el inicio del documento con varios atributos definidos posteriormente en él.
YAML lint es el analizador en línea de YAML y ayuda a analizar la estructura YAML para verificar si es válida o no. El enlace oficial de YAML lint se menciona a continuación:http://www.yamllint.com/
Puede ver el resultado del análisis como se muestra a continuación: