Skip to main content
Validação HTML

Valor inválido “https://www.w3.org/1999/xlink” para o atributo “xmlns:link” (apenas “http://www.w3.org/1999/xlink” é permitido aqui).

Sobre este problema HTML

Os namespaces XML são identificados por strings URI que funcionam como nomes únicos. Nunca são obtidos ou carregados pelo navegador — servem simplesmente como um identificador que deve coincidir exatamente com o que a especificação define. O namespace XLink foi definido como http://www.w3.org/1999/xlink desde a sua criação, e alterar o protocolo para https cria uma string completamente diferente que os parsers e validadores não reconhecem.

É um erro comum e compreensível. Os programadores são treinados para preferir URLs https:// em todo o lado por questões de segurança, e muitas ferramentas de linting ou hábitos podem encorajar a conversão automática de http:// para https://. No entanto, os URIs de namespace são um caso especial onde esta regra não se aplica. A string é puramente declarativa — não é feito nenhum pedido de rede e não há benefício de segurança em usar https.

Também vale a pena notar que o atributo xmlns:xlink está largamente obsoleto no HTML moderno. Quando o SVG está incorporado diretamente num documento HTML5, os navegadores lidam automaticamente com a resolução de namespaces. Só precisa de xmlns:xlink quando servir SVG como XML autónomo (com um ficheiro .svg ou tipo de conteúdo application/xhtml+xml). Na maioria dos casos, pode simplesmente remover o atributo completamente e usar xlink:href ou, ainda melhor, o atributo href simples, que agora é suportado em elementos SVG como <use>, <image> e <a>.

Exemplos

Incorreto: usar https:// no URI do namespace

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="https://www.w3.org/1999/xlink">
  <use xlink:href="#icon-star"></use>
</svg>

Isto desencadeia o erro de validação porque https://www.w3.org/1999/xlink não corresponde ao identificador de namespace necessário.

Corrigido: usar o URI de namespace http:// correto

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <use xlink:href="#icon-star"></use>
</svg>

Preferível: remover o namespace e usar href simples

No HTML5, pode remover completamente a declaração xmlns:xlink e usar o atributo href padrão em vez de xlink:href:

<svg xmlns="http://www.w3.org/2000/svg">
  <use href="#icon-star"></use>
</svg>

Esta é a abordagem mais limpa para SVG inline em documentos HTML modernos. O atributo xlink:href está depreciado no SVG 2, e todos os navegadores modernos suportam href simples em elementos de ligação SVG.

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.