Skip to main content
Validação HTML

Atributo com o nome local “xmlns:v” não é serializável como XML 1.0.

Sobre este problema HTML

O atributo xmlns:v é uma declaração de namespace que liga o prefixo v ao namespace VML da Microsoft (urn:schemas-microsoft-com:vml). VML era um formato de gráficos vectoriais proprietário usado principalmente pelo Internet Explorer (versões 5 a 9) para renderizar formas, linhas e outros elementos gráficos. Quando a Microsoft abandonou o suporte VML em favor do SVG a partir do IE 9, a tecnologia tornou-se obsoleta.

No HTML5 (o padrão HTML vivo), as declarações de namespace usando o padrão de prefixo xmlns: não são permitidas. O parser HTML não processa estes como verdadeiras vinculações de namespace — são tratados como atributos regulares com dois pontos no nome. O validador sinaliza isto porque tais atributos não podem ser processados através de um serializador XML 1.0. Um nome de atributo contendo dois pontos implica um prefixo de namespace em XML, mas sem uma declaração de namespace adequada na saída XML, a serialização seria inválida. Isto significa que o seu documento não pode ser convertido de forma confiável entre formatos HTML e XML.

Este problema aparece comummente em páginas geradas por versões antigas do Microsoft Office (Word, Outlook) que exportam para HTML, ou em templates legados que foram desenhados para compatibilidade com IE. Também pode ver avisos similares para atributos relacionados como xmlns:o (namespace Office) ou xmlns:w (namespace Word).

Porque é que isto importa

  • Conformidade com padrões: HTML5 explicitamente não suporta declarações de namespace personalizadas. Apenas os namespaces incorporados para SVG e MathML são reconhecidos.
  • Nenhum benefício funcional: Como nenhum browser moderno suporta VML, o atributo não serve qualquer propósito. Adiciona peso morto à sua marcação.
  • Interoperabilidade: Documentos com atributos não serializáveis não podem ser processados de forma limpa por ferramentas baseadas em XML, transformações XSLT, ou qualquer sistema que precise de serialização XML válida.

Como corrigir

  1. Remova o atributo xmlns:v do seu elemento <html> (ou onde quer que apareça).
  2. Remova quaisquer outras declarações de namespace legadas da Microsoft como xmlns:o, xmlns:w, ou xmlns:x.
  3. Remova quaisquer elementos específicos de VML (como <v:shape>, <v:oval>, etc.) do seu documento, pois não são reconhecidos pelos browsers modernos.
  4. Substitua gráficos VML por SVG se ainda precisar de funcionalidade de gráficos vectoriais. SVG é nativamente suportado em todos os browsers modernos e é parte do padrão HTML.

Exemplos

Incorrecto: declaração de namespace VML legada

<!DOCTYPE html>
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" lang="en">
  <head>
    <title>Legacy VML Page</title>
  </head>
  <body>
    <v:oval style="width:100px;height:75px" fillcolor="blue"></v:oval>
  </body>
</html>

Isto desencadeia o aviso do validador tanto para xmlns:v como xmlns:o, e o elemento <v:oval> não é reconhecido por qualquer browser moderno.

Correcto: namespace removido, VML substituído por SVG

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Modern SVG Page</title>
  </head>
  <body>
    <svg width="100" height="75" xmlns="http://www.w3.org/2000/svg">
      <ellipse cx="50" cy="37.5" rx="50" ry="37.5" fill="blue" />
    </svg>
  </body>
</html>

Correcto: remoção simples quando não são necessários gráficos vectoriais

Se o namespace foi incluído desnecessariamente (comum com HTML auto-gerado), simplesmente remova-o:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Clean Page</title>
  </head>
  <body>
    <p>No legacy namespace attributes needed.</p>
  </body>
</html>

Se o seu HTML foi exportado do Microsoft Office, considere processá-lo através de um limpador de HTML ou remover manualmente todos os atributos xmlns:* e elementos proprietários. A marcação resultante será menor, válida, e completamente compatível com browsers modernos.

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.