100 % local — seus dados nunca saem do seu navegador

Validador XML — descubra onde ele quebra

Confira se um XML está bem formado: uma raiz, tags fechadas e aninhadas, nomes válidos. A primeira quebra é apontada no lugar onde acontece.

Instantâneo Privado Zero cookies

Entrada XML

Saída Result

O que esta ferramenta verifica

A boa formação, termo da própria especificação para «sintaticamente XML»:

  • exatamente um elemento raiz;
  • cada tag fechada, e fechada na ordem em que foi aberta;
  • valores de atributo entre aspas, e nenhum atributo repetido num elemento;
  • nomes de elementos e atributos que comecem legalmente e contenham só caracteres legais;
  • entidades e referências numéricas corretamente escritas;
  • nenhum caractere proibido pelo XML.

Quando o documento passa, você recebe o elemento raiz e o tamanho. Quando não, recebe a queixa do analisador, com a linha e a coluna onde ele desistiu.

Bem formado não é válido

São duas palavras distintas na especificação XML, e confundi-las custa tempo real.

verifica
Bem formadoa sintaxe — o que esta ferramenta faz
Válidoa sintaxe e um esquema: DTD, XSD, RELAX NG

Um documento pode ser impecavelmente bem formado e errado em tudo o que importa: um elemento exigido ausente, um elemento fora de lugar, <preco>banana</preco> onde um decimal foi declarado. Nada neste relatório diz o contrário, e nenhum verificador de boa formação pode dizer.

Se o que você precisa é validação por esquema, você precisa do esquema — e de uma ferramenta que o leia.

O DOCTYPE não é seguido

Uma referência <!DOCTYPE> é uma URL. Resolvê-la implicaria uma requisição de saída, que diria que este documento existe e quem o consulta. Aqui nada sai do seu navegador: o DOCTYPE é verificado como sintaxe e fica onde está.

É isso também que torna sem objeto os ataques por entidade externa: uma entidade que aponta para algum lugar nunca é buscada.

Uma instrução de processamento à frente não é problema

<?xml-stylesheet href="style.xsl"?> antes do elemento raiz é XML comum e válido, e o relatório nomeia o verdadeiro elemento raiz em vez da instrução.

A única regra de ordem imposta é a da especificação: a declaração XML, se houver, vem primeiro. Em outro lugar não é declaração nenhuma, e sim uma instrução de processamento chamada xml, e esse nome é reservado.

Privado por padrão

Tudo é executado localmente no seu navegador com JavaScript. Os seus dados nunca são enviados para um servidor, o que torna a ferramenta segura para conteúdo sensível e funciona offline.

Perguntas frequentes

Isto verifica meu documento contra o XSD ou a DTD?
Não, e a distinção importa. **Bem formado** quer dizer que a sintaxe se sustenta: um elemento raiz, cada tag fechada na ordem certa, valores de atributo entre aspas, nomes e caracteres legais. **Válido** quer dizer que ele ainda obedece a um esquema: os elementos exigidos presentes, na ordem declarada, com os tipos declarados. Um documento pode ser perfeitamente bem formado e violar seu esquema em cada linha.
Por que o DOCTYPE não é seguido?
Porque segui-lo significa buscar o que ele aponta. Uma referência de DTD é uma URL, e resolvê-la enviaria uma requisição — revelando que o documento existe e quem o olha. Aqui tudo acontece no seu navegador e nada sai dele: o DOCTYPE é verificado como sintaxe e no mais deixado em paz.
Diz que minha declaração precisa vir primeiro. Por quê?
Porque a declaração XML só é declaração na primeira posição; em qualquer outro lugar é uma instrução de processamento chamada `xml`, nome que a especificação reserva. Um `<?xml-stylesheet?>` colocado antes é a causa habitual. Mova a declaração para o topo e o documento é aceito.

Conversores relacionados