YAML - Primitivos de sintaxe
Neste capítulo, você aprenderá sobre os seguintes aspectos das primitivas de sintaxe em YAML -
- Parâmetros de produção
- Espaços de Indentação
- Espaços de Separação
- Prefixo de linha ignorado
- Dobragem de linha
Vamos entender cada aspecto em detalhes.
Parâmetros de Produção
Os parâmetros de produção incluem um conjunto de parâmetros e a faixa de valores permitidos que são usados em uma produção específica. A seguinte lista de parâmetros de produção são usados em YAML -
Recuo
É denotado por personagem n ou mO fluxo de caracteres depende do nível de indentação dos blocos incluídos nele. Muitas produções parametrizaram esses recursos.
Contexto
É denotado por c. YAML oferece suporte a dois grupos de contextos:block styles e flow styles.
Estilo
É denotado por s. O conteúdo escalar pode ser apresentado em um dos cinco estilos:plain, double quoted and single quoted flow, literal and folded block.
Mastigando
É denotado por t. Os escalares de bloco oferecem muitos mecanismos que ajudam a aparar o bloco:strip, clip e keep. Chomping ajuda na formatação de novas strings de linha. É usada a representação do estilo de bloco. O processo de mastigação acontece com a ajuda de indicadores. Os indicadores controlam qual saída deve ser produzida com novas linhas de string. As novas linhas são removidas com(-) operador e novas linhas são adicionados com (+) operador.
Um exemplo de processo de trituração é mostrado abaixo -
strip: |-
text↓
clip: |
text↓
keep: |+
text↓
A saída depois de analisar o exemplo YAML especificado é a seguinte -
Espaços de Indentação
No fluxo de caracteres YAML, o recuo é definido como um caractere de quebra de linha de zero ou mais caracteres. O ponto mais importante a ser mantido em mente é que a indentação não deve conter caracteres de tabulação. Os caracteres em indentação nunca devem ser considerados como parte das informações de conteúdo do nó. Observe o seguinte código para melhor compreensão -
%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",
]
}
}
A saída que você pode ver após o recuo é a seguinte -
{
"Not indented": {
"By one space": "By four\n spaces\n",
"Flow style": [
"By two",
"Still by two",
"Again by two"
]
}
}
Espaços de Separação
YAML usa caracteres de espaço para separação entre tokens. A observação mais importante é que a separação em YAML não deve conter caracteres de tabulação.
O seguinte único código mostra o uso de espaços de separação -
{ · first: · Sammy, · last: · Sosa · }
A sintaxe mostrada acima fornece a seguinte saída:
{
"\u00b7 last": "\u00b7 Sosa \u00b7",
"\u00b7 first": "\u00b7 Sammy"
}
Prefixo de linha ignorado
O prefixo vazio sempre inclui recuo, dependendo do tipo escalar, que também inclui um espaço em branco à esquerda. Os escalares simples não devem conter caracteres de tabulação. Por outro lado, os escalares citados podem conter caracteres de tabulação. Os escalares de bloco dependem completamente da indentação.
O exemplo a seguir mostra o funcionamento do prefixo de linha ignorado de uma maneira sistemática -
%YAML 1.1
---
!!map {
? !!str "plain"
: !!str "text lines",
? !!str "quoted"
: !!str "text lines",
? !!str "block"
: !!str "text·®lines\n"
}
A saída alcançada para os fluxos de bloco é a seguinte -
{
"plain": "text lines",
"quoted": "text lines",
"block": "text\u00b7\u00aelines\n"
}
Line Folding
A dobragem de linha permite quebrar linhas longas para facilitar a leitura. Mais linhas curtas significam melhor legibilidade. A dobra de linha é obtida observando-se a semântica original da linha longa. O exemplo a seguir demonstra a dobra de linha -
%YAML 1.1
--- !!str
"specific\L\
trimmed\n\n\n\
as space"
Você pode ver a saída da dobra de linha no formato JSON da seguinte maneira -
"specific\u2028trimmed\n\n\nas space"