YAML

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Question book.svg
Este artigo não cita fontes fiáveis e independentes. (desde outubro de 2010). Por favor, adicione referências e insira-as corretamente no texto ou no rodapé. Conteúdo sem fontes poderá ser removido.
Encontre fontes: Google (notícias, livros e acadêmico)

YAML é um formato de serialização (codificação de dados) de dados legíveis por humanos inspirado em linguagens como XML, C, Python, Perl, assim como o formato de correio eletrônico especificado pela RFC 2822. YAML foi proposto por Clark Evans em 2001 em conjunto com Ingy döt Net e Oren Ben-Kiki.

YAML é um acrónimo recursivo que significa "YAML Ain't Markup Language" (em português, "YAML não é linguagem de marcação"). No início do seu desenvolvimento YAML significava "Yet Another Markup Language" ("Mais outra linguagem de marcação") para distinguir seu propósito centrado em dados no lugar de documentos marcados. Como é usado frequentemente XML para serialização de dados e XML é uma autêntica linguagem de marcação de documentos, é razoável considerar o YAML como uma linguagem de marcação rápida.

Características[editar | editar código-fonte]

YAML foi criado na crença que todos os dados podem ser representados adequadamente como combinação de listas, hashes (mapas) e dados escalares (valores simples). A sintaxe é relativamente simples e foi desenhada tendo em conta que é muito legível, mas que também fosse facilmente mapeada pelos tipo de dados mais comuns na maioria das linguagens de alto-nível. Além disso, YAML utiliza uma notação baseada em identação e um conjunto de caracteres sigil distintos dos que são usados pelo XML, fazendo com que as duas linguagens sejam facilmente compostas uma na outra.

  • Os conteúdos em YAML utilizam o conjunto de caracteres unicode (UTF-8 ou UTF-16).
  • A estrutura do documento é composto por identação com espaços em branco; não é permitido o uso de caracteres de tabulação para a identação.
  • Os membros das listas são encabeçados por um traço ( - ) nos títulos e com um membro em cada linha, ou entre colchetes ( [   ] ) e separados por uma vígula e espaço ( ,   ).
  • Os vetores associativos se representam usando os dois pontos ( : ) seguido por um espaço. Na seguinte forma "Chave: valor", um por linha ou entre chaves ( {   } ) e separados por vírgula seguido de espaço ( ,   ).
  • Um valor de um vetor associativo vem precedida por um sinal interrogação ( ? ), o que permite que se construam chaves complexas sem ambigüidade.
  • Os valores simples não levam as aspas, mas podem ser incluídas as aspas duplas ( " ), ou aspas simples ( ' ).
  • Nas aspas duplas, os caracteres especiais podem ser representados com sequências de escape similares a da linguagem de programação C, que começam com uma barra invertida ( \ ).
  • Pode-se incluir múltiplos documentos dentro de um único fluxo, separando-os por três traços ( --- ); os três pontos ( ... ) indicam o fim de um documento dentro de um fluxo.
  • Os nós repetidos podem ser inicializados com um e comercial ( & ) e são referidos posteriormente usando o asterisco ( * )
  • Os comentários são encabeçados por cerquilha ( # ) e continuam até o final da linha.
  • Os documentos YAML podem ser precedidos por diretivas compostas por um sinal de porcentagem ( % ) seguidos de um nome e parâmetros delimitados por um espaço.
    • A diretiva %YAML é utilizada para identificar a versão do YAML em um documento.
    • A diretiva %TAG é utilizada como atalho para prefixos de URIs.

YAML requer que as vírgulas e pontos sejam utilizados como separadores nas listas seguidos por um espaço, de forma que os valores escalares que contenham sinais de pontuação (como 5,280 ou http://www.wikipedia.org) possam se representar sem a necessidade de utilizar aspas.

Exemplos[editar | editar código-fonte]

Listas[editar | editar código-fonte]

--- # Enciclopédias favoritas, formato em bloco
- Wikipedia
- Encarta
- Barsa
--- # Lista de compra, formato em linha
[Britannia, Larrousse]

Vetores associativos[editar | editar código-fonte]

--- # Em Bloco
nome: Pedro
idade: 23
--- # Em linha
{nome: Pedro, idade: 23}

Preservando retornos de linha[editar | editar código-fonte]

--- |
A Rosa do Povo
Sentimento do mundo
O poeta, declina de toda responsabilidade,
    na marcha do mundo, capitalista,
    e com suas palavras, intuições, 
    símbolos e outras armas, promete ajudar
    a destruí-lo, como uma pedreira,
    uma, floresta, um verme

Ignorando retornos de linha[editar | editar código-fonte]

--- >
 Este texto 
 será formatado
 como um 
 único parágrafo
 As linhas em branco 
 fazendo a mudança de parágrafo.

Listas de vetores associativos[editar | editar código-fonte]

- {nome: Cosme, idade: 47}
- nome: Damião
  idade: 57

Vetores associados a listas[editar | editar código-fonte]

nomes: [Cosme, Damião]
nomes:
 - Cosme
 - Damião

Implementações[editar | editar código-fonte]

Existem implementação de YAML para as seguintes linguagens:

Veja também[editar | editar código-fonte]

Outras linguagens de marcação:

Referências na internet[editar | editar código-fonte]