Formate XML com indentação clara, preservando o conteúdo e o significado.
O que ela faz
O XML Formatter organiza um documento XML com indentação para que você veja como os seus elementos se aninham. Ele muda a forma como o documento é disposto, não o que ele diz: texto, atributos, comentários, seções CDATA, instruções de processamento e namespaces são mantidos como foram escritos.
Use quando o XML chega em uma única linha comprida ou com indentação irregular. O seu XML é lido como texto simples: nada nele é executado, e nada a que ele se refira é carregado ou consultado.
O que ela aceita
- Um documento XML bem formado com um único elemento raiz. Uma declaração XML, um DOCTYPE, comentários e instruções de processamento antes do elemento raiz são aceitos, assim como comentários e instruções de processamento depois dele.
- Um DOCTYPE, inclusive um com um DTD escrito dentro do documento, é mantido exatamente como foi escrito, quebras de linha incluídas. Para a ferramenta ele é só texto: nada é carregado, buscado nem consultado a partir dele, e nenhuma entidade que ele declare é expandida. Não são aceitos: fragmentos com mais de um elemento raiz, um segundo DOCTYPE, um DOCTYPE depois do elemento raiz e um DOCTYPE que nunca termina.
- As cinco entidades predefinidas (&, <, >, " e ') e as referências numéricas de caracteres (A ou A) são sempre conhecidas. Qualquer outra entidade, como , é recusada quando o documento não tem DOCTYPE, porque nada a declara. Quando o documento tem um DOCTYPE, essas referências são aceitas e mantidas como foram escritas; nunca são expandidas.
- Namespaces: os prefixos precisam ser declarados. Prefixos, declarações xmlns e atributos xml: como xml:lang e xml:space são mantidos como foram escritos.
- Comentários, seções CDATA, instruções de processamento e a declaração XML são mantidos como foram escritos, e os valores de atributos mantêm as aspas, simples ou duplas, que você usou.
- O texto nunca é reajustado nem aparado. O texto de um elemento que só tem texto, o texto misturado com elementos e tudo o que está dentro de um elemento marcado com xml:space="preserve" são mantidos exatamente como foram escritos, inclusive espaços e quebras de linha.
- Indentação de 2 ou 4 espaços, nunca tabulações. As quebras de linha do resultado são sempre do mesmo tipo, qualquer que seja o do seu texto.
Bom saber
- O XML é estrito. Uma tag que nunca é fechada, tags de fechamento fora de ordem, um valor de atributo sem aspas, um & solto ou um < literal no texto, um atributo repetido, um prefixo de namespace não declarado e um caractere que o XML não permite são todos recusados. A ferramenta aponta o problema mais próximo do início que encontra e nunca corrige o XML.
- Além da indentação, a ferramenta faz duas mudanças: uma sequência de linhas em branco entre elementos vira uma única linha em branco, e um elemento com muitos atributos pode ter os atributos quebrados em linhas separadas. Um elemento sem nada entre as suas tags, como <a></a>, continua como você o escreveu.
- O espaço em branco que apenas separa elementos é substituído pela indentação. Onde o texto fica ao lado de elementos, a ferramenta não consegue saber se os espaços importam, então os deixa como estão: um documento escrito como uma única linha comprida de conteúdo misto continua em uma só linha.
- A ferramenta confere se o seu XML é bem formado, não se é válido: ela nunca confere o documento contra um DTD nem contra um esquema, então um DOCTYPE é levado adiante como está.
- Se a indentação deixasse o resultado muito maior que o limite de tamanho, a ferramenta para antes de formatar. Use 2 espaços ou menos aninhamento.
Como usar
- Cole ou digite um documento XML na caixa de entrada. Nada é executado enquanto você digita.
- Escolha a indentação (“2 espaços” ou “4 espaços”) e aperte “Formatar”.
- Leia o resultado ao lado da entrada. Se o seu XML for recusado, a mensagem diz o que está errado e onde.
- Aperte “Copiar” para colocar o resultado na área de transferência, ou “Baixar” para salvá-lo como formatted.xml.
Exemplos
Formatar um documento
Cole este XML e aperte “Formatar” com “2 espaços” selecionado. Os elementos que só contêm outros elementos recebem indentação. O elemento note mistura texto com um elemento, então continua em uma só linha, exatamente como foi escrito. O elemento vazio <book id="2"></book> também continua como você o escreveu.
<?xml version="1.0" encoding="UTF-8"?><library><book id="1"><title>Dune</title><note>Read <i>first</i>.</note></book><book id="2"></book></library><?xml version="1.0" encoding="UTF-8"?>
<library>
<book id="1">
<title>Dune</title>
<note>Read <i>first</i>.</note>
</book>
<book id="2"></book>
</library>
Uma tag de fechamento que não combina
O elemento book nunca é fechado, então a tag de fechamento que vem em seguida, </library>, não combina com o elemento que está aberto. A ferramenta não adivinha onde falta uma tag. Ela recusa e aponta a tag de fechamento que não conseguiu combinar.
<library>
<book>
<title>Dune</title>
</library>Esta tag de fechamento não corresponde ao elemento que está aberto. As tags de fechamento devem ser idênticas às de abertura, inclusive em maiúsculas e minúsculas, e fechar na ordem inversa.
Linha 4, coluna 1
Uma declaração DOCTYPE
Cole este XML e aperte “Formatar”. O DOCTYPE declara uma entidade chamada who e é mantido exatamente como foi escrito. Para a ferramenta ele é só texto: nada é carregado a partir dele, e a referência &who; continua como foi escrita em vez de ser trocada por Ana.
<!DOCTYPE note [<!ENTITY who "Ana">]>
<note><to>&who;</to></note><!DOCTYPE note [<!ENTITY who "Ana">]>
<note>
<to>&who;</to>
</note>
Um nome com letras acentuadas
Cole este XML e aperte “Formatar”. O XML permite letras acentuadas em nomes de elementos e de atributos, e elas são formatadas como qualquer outro nome.
<livro><título>Dom Casmurro</título><autor ano="1899">Machado de Assis</autor></livro><livro>
<título>Dom Casmurro</título>
<autor ano="1899">Machado de Assis</autor>
</livro>
Limites e privacidade
Limites de tamanho
- Entrada: até 2.000.000 bytes de texto em UTF-8 (cerca de 2 MB). Letras acentuadas e emojis ocupam mais de um byte cada. Uma entrada maior é recusada.
- Resultado: também até 2.000.000 bytes. Se o resultado completo fosse maior, a ferramenta mostra apenas uma prévia incompleta dos primeiros 100.000 bytes, e essa prévia não pode ser copiada nem baixada.
- Aninhamento: até 128 níveis de elementos (a raiz é o nível 1; elementos com autofechamento também contam) dentro uns dos outros. Um XML mais profundo é recusado porque passa do que a ferramenta processa.
- Tempo: uma execução que demora mais que o seu limite de tempo é interrompida. Tente uma entrada menor.
Sua privacidade
O texto que você digita ou cola, ou abre de um arquivo local, é processado localmente no seu navegador, em um Web Worker dedicado. Ele nunca é enviado para o servidor (um arquivo que você abre é lido apenas no seu navegador) e não é gravado em armazenamento, cookies nem na barra de endereços.
“Copiar” coloca o resultado na área de transferência e “Baixar” o salva como arquivo, mas só quando você aperta o botão. O arquivo é criado no seu navegador, então nada é enviado.
Para ver os detalhes completos, consulte a Política de Privacidade
Ferramentas e páginas relacionadas
O seu texto continua na página quando você troca de ferramenta na mesma aba, então dá para testar o mesmo texto em outra. Recarregar ou fechar a aba o encerra.