Validador de XML

Valide se seu XML é bem formado online. Exibe erro detalhado com descrição do problema e estatísticas da estrutura.

Validador de XML online

Cole seu XML abaixo e clique em “Validar XML” para verificar se é bem formado.

O que significa XML “bem formado”?

Um XML bem formado (well-formed) segue todas as regras sintáticas do padrão XML:

  • Todo elemento aberto deve ser fechado: <tag></tag> ou <tag/>
  • Tags são case-sensitive: <Nome> e <nome> são elementos diferentes
  • Atributos devem ter valores entre aspas: id="001" (não id=001)
  • Deve haver exatamente um elemento raiz
  • Elementos devem ser corretamente aninhados (sem sobreposição)

Erros comuns em XML

Tag não fechada

<!-- INVÁLIDO -->
<catalogo>
  <produto>Notebook
</catalogo>

<!-- VÁLIDO -->
<catalogo>
  <produto>Notebook</produto>
</catalogo>

Caracteres especiais sem escape

Em XML, certos caracteres têm significado especial e precisam de escape:

CaractereEscape XML
<&lt;
>&gt;
&&amp;
"&quot;
'&apos;
<!-- INVÁLIDO -->
<descricao>Preço < R$100 & disponível</descricao>

<!-- VÁLIDO -->
<descricao>Preço &lt; R$100 &amp; disponível</descricao>

Atributo sem aspas

<!-- INVÁLIDO -->
<produto id=001 tipo=eletronico>

<!-- VÁLIDO -->
<produto id="001" tipo="eletronico">

Diferença entre XML bem formado e XML válido

Bem formadoVálido
DefiniçãoSegue a sintaxe XML básicaSegue um schema (DTD ou XSD)
VerificaçãoQualquer parser XMLRequer validador de schema
Exemplo de erroTag não fechadaCampo obrigatório ausente

Este validador verifica apenas se o XML é bem formado. A validação semântica contra um XSD requer ferramentas específicas.

Como validar XML em código

JavaScript (browser):

function isValidXml(text) {
  const parser = new DOMParser();
  const doc = parser.parseFromString(text, 'text/xml');
  return !doc.querySelector('parsererror');
}

Python:

import xml.etree.ElementTree as ET

def is_valid_xml(text):
    try:
        ET.fromstring(text)
        return True
    except ET.ParseError:
        return False

PHP:

function is_valid_xml(string $xml): bool {
    libxml_use_internal_errors(true);
    $doc = simplexml_load_string($xml);
    libxml_clear_errors();
    return $doc !== false;
}

Usos práticos do XML hoje

  • sitemap.xml: indexação por Google e outros motores de busca
  • NFe (Nota Fiscal Eletrônica): padrão XML obrigatório da Receita Federal brasileira
  • RSS/Atom: feeds de blogs, podcasts e portais de notícias
  • Android: AndroidManifest.xml, layouts e recursos
  • Maven: pom.xml para gerenciamento de dependências Java
  • SOAP: serviços web corporativos e sistemas legados

Perguntas frequentes

Qual a diferença entre XML bem formado e XML válido?

Bem formado: segue a sintaxe correta do XML (tags fechadas, atributos com aspas, etc.). Válido: além de bem formado, os dados respeitam um schema definido (DTD ou XSD). Este validador verifica apenas se o XML é bem formado.

XML diferencia maiúsculas de minúsculas?

Sim. <Produto>, <produto> e <PRODUTO> são elementos completamente diferentes em XML. A convenção mais comum é usar letras minúsculas ou camelCase.

Como escapar caracteres especiais em XML?

Use as entidades pré-definidas: &lt; para <, &gt; para >, &amp; para &, &quot; para ", &apos; para '. Alternativamente, envolva o texto em <![CDATA[...]]>.

O que é um XSD?

XSD (XML Schema Definition) é uma linguagem para definir a estrutura, o conteúdo e os tipos de dados de um documento XML. Define quais elementos e atributos são obrigatórios, seus tipos e restrições. Use o Formatador de XML para visualizar e inspecionar seus documentos XML.