YAML - Processos

YAML segue um procedimento padrão para fluxo de processo. A estrutura de dados nativa em YAML inclui representações simples, como nós. Também é chamado de Gráfico de Nó de Representação.

Inclui mapeamento, sequência e quantidades escalares que estão sendo serializadas para criar uma árvore de serialização. Com a serialização, os objetos são convertidos com fluxo de bytes.

A árvore de eventos de serialização ajuda a criar a apresentação de fluxos de caracteres, conforme representado no diagrama a seguir.

O procedimento reverso analisa o fluxo de bytes na árvore de eventos serializada. Posteriormente, os nós são convertidos em gráfico de nós. Esses valores são posteriormente convertidos na estrutura de dados nativa YAML. A figura abaixo explica isso -

As informações em YAML são usadas de duas maneiras: machine processing e human consumption. O processador em YAML é usado como uma ferramenta para o procedimento de conversão de informações entre visualizações complementares no diagrama fornecido acima. Este capítulo descreve as estruturas de informação que um processador YAML deve fornecer em um determinado aplicativo.

YAML inclui um procedimento de serialização para representar objetos de dados em formato serial. O processamento de informações YAML inclui três etapas:Representation, Serialization, Presentation and parsing. Vamos discutir cada um deles em detalhes.

Representação

YAML representa a estrutura de dados usando três tipos de nós: sequence, mapping e scalar.

Seqüência

Sequência se refere ao número ordenado de entradas, que mapeia a associação não ordenada do par de valores-chave. Corresponde à lista de matrizes Perl ou Python.

O código mostrado abaixo é um exemplo de representação de sequência -

product:
   - sku         : BL394D
     quantity    : 4
     description : Football
     price       : 450.00
   - sku         : BL4438H
     quantity    : 1
     description : Super Hoop
     price       : 2392.00

Mapeamento

O mapeamento, por outro lado, representa a estrutura de dados do dicionário ou a tabela hash. Um exemplo do mesmo é mencionado abaixo -

batchLimit: 1000
threadCountLimit: 2
key: value
keyMapping: <What goes here?>

Escalares

Os escalares representam valores padrão de strings, inteiros, datas e tipos de dados atômicos. Observe que YAML também inclui nós que especificam a estrutura do tipo de dados. Para obter mais informações sobre escalares, consulte o capítulo 6 deste tutorial.

Serialização

O processo de serialização é necessário em YAML, o que facilita a ordem de chaves e nomes de âncora amigáveis. O resultado da serialização é uma árvore de serialização YAML. Ele pode ser percorrido para produzir uma série de chamadas de eventos de dados YAML.

Um exemplo de serialização é fornecido abaixo -

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']

Apresentação

A saída final da serialização YAML é chamada de apresentação. Ele representa o fluxo de um personagem de uma maneira humana amigável. O processador YAML inclui vários detalhes de apresentação para a criação de fluxo, manipulação de recuo e formatação de conteúdo. Este processo completo é guiado pelas preferências do usuário.

Um exemplo de processo de apresentação YAML é o resultado do valor JSON criado. Observe o código fornecido abaixo para um melhor entendimento -

{
   "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"
               ]
            }
         }
      }
   }
}

Análise

A análise é o processo inverso de apresentação; inclui um fluxo de personagens e cria uma série de eventos. Ele descarta os detalhes introduzidos no processo de apresentação que causa eventos de serialização. O procedimento de análise pode falhar devido a uma entrada malformada. É basicamente um procedimento para verificar se o YAML está bem formado ou não.

Considere um exemplo YAML que é mencionado abaixo -

---
   environment: production
   classes:
      nfs::server:
         exports:
            - /srv/share1
            - /srv/share3
   parameters:
      paramter1

Com três hifens, representa o início do documento com vários atributos definidos posteriormente nele.

YAML lint é o analisador online de YAML e ajuda a analisar a estrutura YAML para verificar se ela é válida ou não. O link oficial para o lint YAML é mencionado abaixo:http://www.yamllint.com/

Você pode ver a saída da análise conforme mostrado abaixo -