Sobre esta ferramenta
Respostas SOAP, sitemaps, POMs do Maven e relatórios JUnit XML são difíceis de ler em uma única linha. Este formatador primeiro verifica se a entrada está bem formada usando o próprio parser XML do navegador e depois reindenta com um tokenizador que deixa seções CDATA, comentários, instruções de processamento e o DOCTYPE exatamente como foram escritos. Elementos que contêm apenas texto ficam em uma linha, então a saída parece XML escrito à mão, e não uma tag por linha.
Como usar
- Cole o XML ou carregue o documento de pedido de exemplo.
- Escolha Format e uma indentação (2 espaços, 4 espaços ou tab), ou Minify para compactar em uma linha.
- Se o XML não estiver bem formado, corrija a linha e a coluna mostradas no banner vermelho.
- Copie ou baixe o resultado.
Bem formado não é o mesmo que válido
Um XML bem formado segue as regras de sintaxe: exatamente um elemento raiz, todas as tags fechadas e corretamente aninhadas, valores de atributos entre aspas e caracteres especiais escapados. Um XML válido também é bem formado e está em conformidade com um schema (XSD) ou DTD que define quais elementos e valores são permitidos. Este formatador verifica se está bem formado, porque o documento precisa ser interpretado antes de ser reindentado. A validação contra um XSD é uma etapa separada.
Motivos comuns para um XML não ser interpretado
- Um e comercial ou sinal de menor sem escape no texto: escreva
&e<, ou coloque o texto em uma seção CDATA. - Tags que diferem só na caixa, como
<Order>…</order>: XML diferencia maiúsculas de minúsculas. - Mais de um elemento no nível superior: envolva-os em uma única raiz.
- Valor de atributo sem aspas, como em
<item id=7>. - Prefixo de namespace sem declaração, como
<soap:Envelope>sem o atributoxmlns:soap="…". - Qualquer coisa antes da declaração XML:
<?xml version="1.0"?>precisa ser os primeiros caracteres, sem espaço antes.
Onde testers encontram XML
APIs SOAP e corporativas legadas, relatórios de teste JUnit XML (o formato que a maioria dos servidores de CI lê), arquivos pom.xml do Maven, sitemaps, feeds RSS e layouts Android são todos XML. O Playwright gera JUnit XML com reporter: [['junit', { outputFile: 'results.xml' }]], e formatar esse arquivo é o jeito mais rápido de ver por que o CI contou um teste como falho.
Para fazer assertions sobre XML no código, o REST Assured suporta matchers XPath como body(hasXPath("/order/status[text()='SHIPPED']")). Na linha de comando, xmllint --format file.xml formata um arquivo, e xml.dom.minidom.parseString(text).toprettyxml() do Python faz o mesmo em um script. Para testar expressões XPath de forma interativa, use o Testador de XPath e CSS.
Perguntas frequentes: Formatador XML
Formatar altera meus dados?
Textos formados só por espaços entre tags são descartados e recriados como indentação, e o texto dentro dos elementos tem os espaços das pontas removidos. Isso é inofensivo para XML orientado a dados, mas em conteúdo misto ou em elementos onde xml:space="preserve" importa, compare o resultado antes de usá-lo.
Seções CDATA e comentários são mantidos?
Sim. Eles são copiados byte a byte, incluindo qualquer marcação dentro do CDATA. No modo Minify, você pode optar por remover os comentários.