Skip to main content
Validação HTML

O nome do elemento “X” não pode ser representado como XML 1.0.

Sobre este problema HTML

Quando o validador analisa o seu HTML (especialmente em modo XHTML ou quando serializado como XML), cada nome de elemento deve estar em conformidade com as regras de nomenclatura XML 1.0. Estas regras exigem que os nomes de elementos comecem com uma letra (az, AZ) ou um sublinhado (_), seguido por qualquer combinação de letras, dígitos, hífens (-), sublinhados, pontos (.), ou caracteres de combinação. Caracteres como espaços, parênteses angulares, barras ou outros símbolos especiais dentro de um nome de tag tornam-no não representável em XML 1.0.

Este erro ocorre mais frequentemente devido a:

  • Erros de digitação em nomes de tags — inserir acidentalmente um espaço, carácter extra ou símbolo num nome de tag.
  • Tags de fecho malformadas — esquecer a barra ou colocar caracteres incorretamente numa tag de fecho.
  • Erros de sintaxe de template — marcadores de posição do motor de templates a vazar para a saída HTML final.
  • Problemas de copiar-colar — caracteres invisíveis ou não-ASCII a infiltrarem-se nos nomes de tags de editores de texto rico.

Isto é importante porque os navegadores podem não analisar tags malformadas como pretendido, levando a layouts quebrados ou conteúdo em falta. Os leitores de ecrã e tecnologias assistivas dependem de markup bem formado para interpretar a estrutura da página. Além disso, qualquer sistema que processe o seu HTML como XML (como geradores de feeds RSS, renderizadores EPUB, ou ambientes que servem XHTML) rejeitará documentos com nomes de elementos inválidos inteiramente.

Como corrigir

  1. Inspeccione a linha sinalizada — observe cuidadosamente o nome do elemento sobre o qual o validador está a reclamar. Verifique caracteres perdidos, espaços ou símbolos.
  2. Corrija qualquer erro de digitação — substitua a tag malformada pelo nome de elemento HTML correcto.
  3. Valide a saída do template — se usar um motor de templates, certifique-se de que o HTML renderizado não contém tokens de template não processados dentro dos nomes de tags.
  4. Verifique caracteres invisíveis — cole o nome da tag num editor de texto simples ou use um visualizador hex para identificar caracteres ocultos.

Exemplos

Erro de digitação com um espaço no nome da tag

Um espaço dentro do nome da tag cria um nome de elemento inválido:

<!-- Errado: espaço no nome do elemento -->

<di v class="container">
  <p>Olá mundo</p>
</di v>

Corrija removendo o espaço acidental:

<!-- Correcto -->

<div class="container">
  <p>Olá mundo</p>
</div>

Carácter especial num nome de tag

Um carácter especial acidental torna o nome não representável em XML 1.0:

<!-- Errado: carácter hash perdido no nome da tag -->

<s#ection>
  <h2>Sobre</h2>
</s#ection>

Corrija usando o nome de elemento correcto:

<!-- Correcto -->

<section>
  <h2>Sobre</h2>
</section>

Tag de fecho malformada

Uma barra em falta ou mal colocada pode produzir um nome de tag confuso:

<!-- Errado: a barra está no lugar errado -->

<p>Algum texto<p/>

Corrija com uma tag de fecho devidamente formada:

<!-- Correcto -->

<p>Algum texto</p>

Marcador de posição de template a vazar para a saída

Sintaxe de template não processada pode produzir nomes de elementos inválidos no HTML renderizado:

<!-- Errado: variável de template não resolvida no nome do elemento -->

<{{tagName}}>Conteúdo</{{tagName}}>

Certifique-se de que o seu motor de templates resolve a variável antes de servir o HTML. A saída renderizada deve ser:

<!-- Correcto: após processamento do template -->

<article>Conteúdo</article>

Encontre problemas como este automaticamente

O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.

Ajude-nos a melhorar os nossos guias

Este guia foi útil?

Pronto para validar os seus sites?
Comece o seu teste gratuito hoje.