O que o formatador XML faz
O XML guarda dados estruturados como tags aninhadas. Ele é usado em feeds RSS, sitemaps, APIs SOAP, layouts do Android, arquivos pom.xml do Maven, documentos do Office e muitas exportações de dados. No Brasil, a nota fiscal eletrônica (NF-e) também é um arquivo XML. As máquinas muitas vezes escrevem o XML em uma única linha longa. Esta ferramenta organiza tudo com um elemento por linha e recuo consistente, para o aninhamento ficar fácil de acompanhar.
São três ações:
- Formatar organiza o recuo do XML.
- Minificar remove os espaços entre as tags para deixar o arquivo menor.
- Validar confere se o documento está bem formado e aponta o primeiro problema.
Como usar
- Cole o XML na caixa da esquerda, clique em Abrir arquivo ou em Exemplo. O XML colado é formatado na hora.
- Escolha um Recuo de 2 espaços, 4 espaços ou tabulações.
- Clique em Formatar, Minificar ou Validar. Ctrl+Enter repete a última ação.
- Clique em Copiar ou em Baixar para salvar o resultado como um arquivo
.xml.
Antes e depois
Um catálogo de produtos em uma linha só:
<?xml version="1.0" encoding="UTF-8"?><catalog><book id="bk101"><author>Gambardella, Matthew</author><title>XML Developer's Guide</title><price>44.95</price></book><book id="bk102"><author>Ralls, Kim</author><title>Midnight Rain</title><price>5.95</price></book></catalog>
Depois de Formatar com 2 espaços:
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<price>44.95</price>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<price>5.95</price>
</book>
</catalog>
O conteúdo de texto fica na mesma linha do seu elemento. Isso importa, porque colocar uma quebra de linha dentro de <price>44.95</price> mudaria o valor que um programa lê.
Minificar transforma a versão formatada de volta na linha única mostrada acima. Validar na mesma entrada informa: XML bem formado. Elemento raiz <catalog>, 9 elementos no total.
As seções CDATA ficam exatamente como foram escritas, então <script><![CDATA[if (a < b) run();]]></script> sai sem mudança.
Erros que o verificador encontra
Muitos formatadores de XML “consertam” a marcação quebrada sem avisar, por exemplo fechando uma tag em um lugar que você não queria. Este confere o documento primeiro e para no primeiro problema. Estas são mensagens reais da ferramenta:
| Entrada | Mensagem |
|---|---|
<to>Tove</from> |
Linha 2, coluna 11: A tag de fechamento </from> não corresponde a <to>, aberta na linha 2 |
Smith & Sons |
Linha 1, coluna 16: Um "&" solto precisa ser escrito como & |
Um <item> que nunca é fechado |
Linha 4, coluna 1: A tag de fechamento </list> não corresponde a <item>, aberta na linha 3 |
<book id=101/> |
Linha 1, coluna 10: O valor de "id" precisa estar entre aspas |
| Dois elementos no nível mais alto | Linha 2, coluna 1: Só é permitido um elemento raiz, mas foi encontrado um segundo: <b> |
Clique em Mostrar na entrada para levar o cursor até o problema.
O que significa “bem formado”
Um documento XML está bem formado quando segue as regras básicas de sintaxe:
- Toda tag de abertura tem uma tag de fechamento correspondente, ou se fecha sozinha, como
<br/>. - As tags fecham na ordem inversa em que abriram.
- Existe exatamente um elemento raiz.
- Os valores dos atributos ficam entre aspas simples ou duplas, e nenhum atributo aparece duas vezes no mesmo elemento.
- Um
&ou um<literal no texto é escrito como&ou<. - A declaração
<?xml ... ?>, se existir, é a primeira coisa do arquivo.
Entidades com nome, como , só são permitidas quando um DOCTYPE as declara, porque o XML em si só conhece cinco: <, >, &, ' e ". Acentos e cedilha podem ser escritos diretamente, desde que o arquivo esteja salvo na codificação declarada (normalmente UTF-8).
Dicas e limites
- A validação não usa schema. Um documento pode estar bem formado e mesmo assim ter os elementos errados para a sua aplicação. No caso da NF-e, a validação contra os schemas oficiais é feita pelos sistemas emissores e pela Sefaz.
- Os espaços dentro do texto são mantidos. Se precisar reorganizar um texto, edite à mão.
- Minificar mantém os comentários. Apague antes se precisar do menor arquivo possível.
- Tudo roda localmente, então configurações internas e exportações podem ser coladas com segurança.
Outras formas de formatar XML
xmllint. No Linux e no macOS, xmllint --format file.xml mostra uma cópia com recuo, e xmllint --noout file.xml só aponta os erros. Ele também confere com um schema usando --schema.
VS Code. Instale uma extensão de XML (a extensão XML da Red Hat é uma escolha comum) e use Formatar Documento.
Notepad++. O plugin XML Tools acrescenta um comando de Pretty Print.
Ferramentas relacionadas
Se os seus dados estão em JSON, use o formatador JSON. Para arquivos de configuração, o formatador YAML faz o mesmo trabalho com YAML. Para páginas web, use o formatador HTML, que entende regras do HTML que o XML não aceita.