Este artigo ou secção contém uma lista de referências no fim do texto, mas as suas fontes não são claras porque não são citadas no corpo do artigo, o que compromete a confiabilidade das informações. Ajude a melhorar este artigo inserindo citações no corpo do artigo. (Outubro de 2010)
Logo da YAML.

O YAML (acrónimo de "YAML Ain't Markup Language") é um formato de serialização (codificação de dados) de dados legíveis por humanos inspirado em linguagens computacionais (programação e marcação), proposto por Clark Evans em 2001.

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.

História

Atualmente, o XML foi adotado em diversas áreas: da justiça à saúde; a principal escolha para formatos de documentos na maior parte das aplicações computacionais; recomendado pela W3C. No entanto, este também possui os pontos fracos (sintaxe redundante; construção dos parsers não trivial; não suporta um grande conjunto de tipos de dados). Assim existem dezenas de alternativas ao XML no mercado, de entre estas duas destacam-se recentemente: o YAML e o JSON.[1]

YAML é um acrónimo recursivo que significa "YAML Ain't Markup Language" (em português: "YAML não é linguagem de marcação"). Porém, 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; pois tem grande parte das características das linguagens de anotação, mas com uma notação diferente, sendo muito mais leve e compacto (ler, editar, modificar e produzir).[1]

Um formato de codificação de dados à serem legíveis aos humanos baseado nas características de outras linguagens de marcação e também linguagens de programação, como: XML, C, Python, Perl (assim como o formato de correio eletrônico RFC 2822), sendo proposto em 2001 por Clark Evans - mas desenvolvido em conjunto com Ingy döt Net e Oren Ben-Kiki - [1] com o pensamento "de que todos os dados podem ser adequadamente representados por combinações de listas, mapas e registos".[1]

Características

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 projetada 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 indentaçã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.

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

Listas

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

Vetores associativos

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

Preservando retornos de linha

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

--- >
  Este texto
  será formatado
  como um
  único parágrafo.

  As linhas em branco
  fazendo a mudança de parágrafo.

Listas de vetores associativos

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

Vetores associados a listas

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

Implementações

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

Ver também

Outras linguagens de marcação:

Referências

  1. a b c d Fonseca, Rúben; Simões, Alberto (2007). Alternativas ao XML: YAML e JSON (PDF). [S.l.]: Universidade do Minho. Resumo divulgativo 

Ligações externas