ToolDeck

Formatador de XML

Formate e embeleze XML com realce de sintaxe

Experimente um exemplo

Entrada XML

XML Formatado

Roda localmente · Seguro para colar segredos
O XML formatado aparecerá aqui…

O que é Formatação de XML?

A formatação de XML (também chamada de pretty-printing ou embelezamento de XML) é o processo de adicionar indentação e quebras de linha consistentes a um documento XML para tornar sua estrutura hierárquica visível. O XML bruto proveniente de APIs, geradores de configuração ou serializadores costuma ser entregue em uma única linha, sem nenhum espaço em branco entre as tags. Um formatador de XML analisa o documento em uma árvore e o ressserializa com espaçamento previsível. O resultado é visualmente claro e muito mais fácil de compreender, sem que o conteúdo lógico do documento seja alterado de forma alguma.

A especificação XML 1.0 (Recomendação W3C, quinta edição) define uma gramática rígida em que toda tag de abertura deve ter uma tag de fechamento correspondente ou ser auto-fechada, os atributos devem estar entre aspas e cinco caracteres (<, >, &, ", ') exigem escape por entidade. Um formatador deve respeitar essas regras ao inserir apenas espaços em branco não significativos que não alterem o conjunto de informações (infoset) do documento.

O XML formatado é mais fácil de ler durante revisões de código, mais fácil de comparar em controle de versão e mais fácil de depurar quando um serviço retorna dados inesperados. A operação de formatação é sem perdas: o conteúdo lógico do documento permanece idêntico; apenas a apresentação muda. Ferramentas como git diff e plataformas de revisão de pull request exibem apenas as linhas modificadas — um XML com indentação consistente garante que os diffs reflitam alterações reais, e não ruído de reformatação.

Before · xml
After · xml
<catalog><book id="bk101"><author>Gambardella, Matthew</author><title>XML Developer's Guide</title><genre>Computer</genre><price>44.95</price><publish_date>2000-10-01</publish_date></book><book id="bk102"><author>Ralls, Kim</author><title>Midnight Rain</title><genre>Fantasy</genre><price>5.95</price><publish_date>2000-12-16</publish_date></book></catalog>
<catalog>
  <book id="bk101">
    <author>Gambardella, Matthew</author>
    <title>XML Developer's Guide</title>
    <genre>Computer</genre>
    <price>44.95</price>
    <publish_date>2000-10-01</publish_date>
  </book>
  <book id="bk102">
    <author>Ralls, Kim</author>
    <title>Midnight Rain</title>
    <genre>Fantasy</genre>
    <price>5.95</price>
    <publish_date>2000-12-16</publish_date>
  </book>
</catalog>

Por que Usar um Formatador de XML Online?

Formatar XML manualmente é lento e sujeito a erros, especialmente em documentos com aninhamento profundo ou namespaces mistos. Um formatador no navegador entrega o resultado formatado em menos de um segundo, independentemente do tamanho do arquivo. Ao contrário de ferramentas desktop ou utilitários de linha de comando, não requer instalação nem configuração — basta abrir a página e começar a trabalhar imediatamente.

Pretty-print instantâneo
Cole ou digite XML e obtenha a saída indentada imediatamente. Sem esperar a instalação de uma ferramenta de linha de comando nem uma etapa de build.
🔒
Processamento com privacidade em primeiro lugar
Todo o processamento e a formatação acontecem no seu navegador via DOMParser API. Seu XML nunca sai da sua máquina e nunca é enviado a nenhum servidor.
🎨
Indentação configurável
Escolha entre 2 espaços, 4 espaços ou tabulação para combinar com os padrões de codificação do seu projeto, sem editar arquivos de configuração.
📋
Sem conta ou instalação
Abra a página, cole seu XML e copie o resultado. Sem formulários de cadastro, sem software de desktop, sem extensões de navegador.

Casos de Uso do Formatador de XML

Desenvolvimento frontend
Inspecione marcação SVG ou fragmentos XHTML retornados por um CMS. Formatar a saída bruta permite localizar atributos específicos e grupos aninhados rapidamente.
Engenharia backend
Depure respostas SOAP, feeds RSS ou payloads XML-RPC de serviços terceiros. A saída formatada permite rastrear elementos ausentes ou namespaces incorretos.
DevOps e CI/CD
Leia arquivos Maven pom.xml, scripts de build Ant ou arquivos de projeto .csproj gerados por máquina sem indentação. Formate-os antes de fazer commit para manter os diffs limpos.
QA e testes
Compare payloads XML esperados e reais em testes de integração. Formatar ambos os lados com o mesmo estilo de indentação elimina falsos negativos causados por diferenças de espaço em branco.
Engenharia de dados
Inspecione exportações XML de bancos de dados, pipelines de ETL ou portais de dados abertos governamentais. O XML formatado revela a estrutura dos registros antes de você escrever uma transformação XSLT ou uma consulta XPath.
Aprendendo XML
Estudantes que seguem os tutoriais de XML do W3C podem colar os arquivos de exercício no formatador para verificar se o aninhamento e a sintaxe de atributos estão corretos.

Referência de Entidades Predefinidas do XML

O XML reserva cinco caracteres para sua sintaxe. Quando esses caracteres aparecem como texto literal ou como valores de atributo, eles devem ser substituídos por referências a entidades predefinidas. Um formatador correto preserva essas entidades durante o pretty-printing.

CaracterePapel no XMLEntidade
<Start of tag&lt;
>End of tag&gt;
&Start of entity&amp;
"Attribute delimiter&quot;
'Attribute delimiter&apos;

Comparação de Estilos de Indentação no XML

Não existe um padrão único para indentação de XML. A escolha depende das convenções da sua equipe e das ferramentas no seu pipeline. Aqui estão os três estilos mais comuns.

2 espaços (recomendado)
A escolha mais comum para XML relacionado à web: SVG, XHTML, SOAP, configurações do Spring. Mantém documentos com aninhamento profundo compactos. Usado por padrão na maioria dos formatadores online e IDEs.
4 espaços
Preferido nos ecossistemas Java (Maven, Ant, manifests do Android), onde os arquivos raramente ultrapassam 3 a 4 níveis de aninhamento. Corresponde à indentação padrão de código Java e C#.
Caractere de tabulação
Permite que cada desenvolvedor defina sua própria largura visual no editor. Comum em projetos legados e em algumas ferramentas da Microsoft (.csproj, .nuspec). Produz arquivos menores do que com espaços.

Exemplos de Código: Formatar XML Programaticamente

Quando você precisa formatar XML dentro de um script ou processo de build, toda linguagem importante oferece uma opção nativa ou da biblioteca padrão. Abaixo estão exemplos funcionais que você pode copiar diretamente.

JavaScript (DOM API)
const raw = '<root><item>hello</item></root>'
const parser = new DOMParser()
const doc = parser.parseFromString(raw, 'application/xml')
const serializer = new XMLSerializer()
const xml = serializer.serializeToString(doc)

// Indent with XSLT (browser-native approach)
const xslt = new DOMParser().parseFromString(`
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="node()|@*">
      <xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy>
    </xsl:template>
  </xsl:stylesheet>`, 'application/xml')

const proc = new XSLTProcessor()
proc.importStylesheet(xslt)
const formatted = proc.transformToDocument(doc)
console.log(new XMLSerializer().serializeToString(formatted))
// → <root>\n  <item>hello</item>\n</root>
Python
import xml.dom.minidom

raw = '<root><item>hello</item><item>world</item></root>'
dom = xml.dom.minidom.parseString(raw)
print(dom.toprettyxml(indent='  '))
# → <?xml version="1.0" ?>
# → <root>
# →   <item>hello</item>
# →   <item>world</item>
# → </root>

# With lxml (handles namespaces, XSD, large files)
from lxml import etree
tree = etree.fromstring(raw.encode())
print(etree.tostring(tree, pretty_print=True).decode())
Go
package main

import (
    "encoding/xml"
    "fmt"
    "strings"
)

func formatXML(raw string) (string, error) {
    decoder := xml.NewDecoder(strings.NewReader(raw))
    var out strings.Builder
    encoder := xml.NewEncoder(&out)
    encoder.Indent("", "  ")
    for {
        tok, err := decoder.Token()
        if err != nil {
            break
        }
        encoder.EncodeToken(tok)
    }
    encoder.Flush()
    return out.String(), nil
}
// formatXML("<a><b>1</b></a>") → "<a>\n  <b>1</b>\n</a>"
CLI (xmllint)
# Format XML file with xmllint (part of libxml2, pre-installed on macOS/Linux)
xmllint --format input.xml > formatted.xml

# Format from stdin
echo '<a><b>1</b></a>' | xmllint --format -
# → <?xml version="1.0"?>
# → <a>
# →   <b>1</b>
# → </a>

# Validate and format at the same time
xmllint --format --schema schema.xsd input.xml

Perguntas Frequentes

A formatação de XML altera o significado do documento?
Não. A formatação de XML apenas adiciona ou remove espaços em branco não significativos entre as tags. O XML Information Set (infoset) permanece idêntico. Uma exceção: se o seu esquema usa xml:space="preserve" em determinados elementos, o formatador deve deixar esses elementos sem alteração, e esta ferramenta respeita isso.
Qual é a diferença entre formatação e validação de XML?
A formatação adiciona indentação e quebras de linha para tornar o XML legível. A validação verifica se o documento está em conformidade com um esquema (XSD, DTD ou RelaxNG). Um documento pode ser bem-formado, mas inválido perante seu esquema. Use este formatador para legibilidade e a ferramenta XML Validator para conformidade com esquemas.
Posso formatar XML com namespaces?
Sim. O DOMParser do navegador lida com namespaces XML nativamente. Prefixos de namespace, declarações de namespace padrão (xmlns) e nomes de atributo qualificados são preservados durante a formatação. O formatador não adiciona, remove nem renomeia nenhuma vinculação de namespace.
Qual é o tamanho máximo de arquivo XML que posso formatar no navegador?
A formatação no navegador funciona bem para documentos de até aproximadamente 10 MB. Acima disso, a árvore DOM consome memória significativa e a interface pode ficar sem resposta. Para arquivos muito grandes, use uma ferramenta de linha de comando como xmllint --format, que processa XML como um stream.
Por que o XML formatado recebe uma declaração XML adicionada?
Alguns formatadores adicionam <?xml version="1.0"?> ao serializar a árvore DOM. Essa declaração é opcional no XML 1.0 quando a codificação é UTF-8. Se não quiser, remova a primeira linha da saída. A declaração não afeta o processamento por nenhum processador XML em conformidade.
Formatação de XML é o mesmo que minificação de XML?
São operações opostas. A formatação adiciona espaços em branco para melhorar a legibilidade. A minificação remove todos os espaços em branco não essenciais para reduzir o tamanho do arquivo. Ambas as operações são sem perdas em relação ao infoset do XML. Se precisar minificar XML, use a ferramenta XML Minifier.
Qual é a diferença entre formatação de XML e de HTML?
O XML é rígido: toda tag deve ser fechada, os valores de atributo devem estar entre aspas e o documento deve ter exatamente um elemento raiz. O HTML (especificamente o HTML5) é permissivo: tags de fechamento opcionais, atributos sem aspas e elementos vazios como &lt;br&gt; são todos válidos. Um formatador de XML rejeitará XML inválido, enquanto um formatador de HTML tolera sintaxe que o XML não permitiria.