O que é o formato de ficheiro YML?
.yml é um arquivo de texto simples e um formato de intercâmbio de dados. É um formato padronizado e independente de plataforma que armazena dados como texto legível por humanos, organizado através de uma estrutura key: value baseada em indentação. Arquivos .yml podem ser lidos e gravados usando bibliotecas YAML disponíveis para praticamente todas as principais linguagens de programação. .yml e .yaml identificam o mesmo formato - .yml é a forma mais antiga de três letras mantida por muitas ferramentas como docker-compose.yml, .gitlab-ci.yml e fluxos de trabalho do GitHub Actions. O formato é mais comumente usado para serialização de dados e configuração de aplicativos.
Serialização é um termo usado na ciência da computação e refere-se ao conceito de troca de dados entre programas ou aplicativos usando objetos bem definidos. Um objeto pode ser entendido como um contêiner de dados. Por exemplo, registros de banco de dados são uma forma de serialização de dados, pois podem ser facilmente trocados entre vários bancos de dados. Dados serializados também podem assumir a forma de arquivos estruturados que podem ser enviados entre aplicativos. Entre os formatos de serialização mais amplamente utilizados estão .yml, XML, JSON e TOML.
Uma característica distintiva do .yml é o uso de espaço em branco significativo: a indentação define a estrutura do documento, e apenas espaços são permitidos - tabulações são explicitamente proibidas pela especificação. Os documentos podem opcionalmente abrir com --- (início do documento) e fechar com .... O YAML também suporta comentários # na linha, escalares de bloco de várias linhas usando | ou > e âncoras (&) com aliases (*) para reutilizar valores repetidos.
Segurança e proteção
RISCO: MEDIUMUm arquivo .yml é texto simples e não é executado por conta própria, portanto, a leitura é segura. Dois riscos reais: (1) YAML de configuração (pipelines de CI, Compose, K8s, Ansible) frequentemente contém segredos - tokens, senhas, chaves - portanto, não o cole em validadores online não confiáveis nem o envie publicamente. (2) Perigo programático: carregar YAML não confiável com um analisador inseguro (ex: yaml.load do PyYAML em vez de yaml.safe_load) pode executar objetos/código arbitrário - use sempre o carregador seguro para arquivos em que você não confia. Risco de edição: uma tabulação ou espaço desalinhado altera silenciosamente o significado, portanto, valide após editar.
Detalhes do formato
em resumo- Strangereal IFL camera-map (raro) - Alguns aplicativos legados reutilizaram .yml para dados não-YAML, mas hoje a extensão é virtualmente sempre texto YAML.
Programas que abrem arquivos YML
Detalhes técnicos
especificação profunda| Tipo MIME | application/yaml (registrado na IANA); variantes legadas incluem text/yaml, text/x-yaml, application/x-yaml |
| Codificação | UTF-8 (padrão e mais comum); UTF-16 e UTF-32 com BOM são permitidos pela especificação, mas raramente usados na prática |
| Estrutura do arquivo | Mapeamentos baseados em indentação (chave: valor), sequências (- item) e escalares; o aninhamento é expresso puramente pelo nível de indentação |
| Espaço em branco significativo | A indentação define a estrutura; apenas espaços são permitidos - tabulações são explicitamente proibidas pela especificação YAML |
| Marcadores de documento | --- opcional marca o início do documento; ... marca o fim do documento; um único arquivo .yml pode conter vários documentos YAML separados por --- |
| Suporte a comentários | Comentários na linha e em linhas completas introduzidos por # - ausentes no JSON e na maioria dos formatos de serialização binária |
| Tipos de dados nativos | String, inteiro, float, booleano, null, timestamp e binário (codificado em base64 via tag !!binary) |
| Âncoras e aliases | & declara uma âncora reutilizável; * faz referência (alias) a ela - elimina a repetição de copiar e colar em arquivos de configuração complexos |
| Escalares de bloco | | (escalar de bloco literal) preserva quebras de linha como estão; > (escalar de bloco dobrado) colapsa quebras de linha em espaços |
| Superset do JSON | Desde o YAML 1.2 (2009), todo arquivo JSON válido também é um YAML válido, portanto, analisadores YAML podem ler JSON nativamente |
| Bytes mágicos / assinatura | Nenhum - sem cabeçalho binário ou número mágico; identificado por sua estrutura chave: valor baseada em indentação e pela extensão .yml ou .yaml |
| Tamanho do arquivo (típico) | De bytes a dezenas de KB para arquivos de configuração e pipelines de CI/CD; raramente excede algumas centenas de KB |
| Equivalência de extensão | .yml e .yaml são idênticos em formato; .yml é a forma de três letras da era DOS adotada por docker-compose.yml, .gitlab-ci.yml e GitHub Actions |
| Diretiva de versão da especificação | Pragma %YAML 1.2 opcional no início do arquivo declara a versão da especificação; a maioria dos arquivos a omite e depende dos padrões do analisador |
| Lançado | 2001 (YAML 1.0); YAML 1.1 (2005); current YAML 1.2 (2009, revised 1.2.2 in 2021) |
| Versão mais recente | YAML 1.2.2 (2021) |
| Padrão aberto | Sim · livre de royalties |
| Especificação | yaml.org |
Conversões de YML
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos YML.