Acerca de este problema HTML
Un URI de namespace XML es un identificador único, no una dirección web real que tu navegador obtenga. El namespace SVG fue definido como http://www.w3.org/2000/svg en la especificación SVG original, y esa cadena exacta es lo que esperan los analizadores HTML y validadores. Aunque usar https en todas partes es una buena práctica para solicitudes de red reales, los URIs de namespace no son solicitudes de red — son simplemente cadenas fijas usadas para identificar a qué vocabulario XML pertenece un elemento.
Cuando escribes https://www.w3.org/2000/svg en lugar de http://www.w3.org/2000/svg, el validador ve un namespace no reconocido. Esto también puede causar problemas en ciertos contextos basados en XML (como XHTML o archivos SVG independientes), donde el navegador puede fallar al reconocer el elemento como SVG completamente, resultando en que tus gráficos no se rendericen. En modo HTML5 estándar, la mayoría de navegadores seguirán renderizando SVGs inline correctamente independientemente del valor xmlns, pero el marcado es técnicamente inválido y puede causar problemas en entornos de análisis más estrictos como serializadores XML, renderizadores del lado del servidor, o herramientas que procesan SVG como XML.
Este error es especialmente común porque muchos desarrolladores reflexivamente cambian http a https — o su editor o linter lo hace automáticamente — cuando ven una cadena similar a una URL. El mismo principio se aplica a otros URIs de namespace como http://www.w3.org/1999/xhtml para HTML y http://www.w3.org/1998/Math/MathML para MathML. Estos son todos identificadores fijos que no deben alterarse.
Cómo solucionarlo
Reemplaza https:// con http:// en el valor del atributo xmlns. Eso es todo — no se necesitan otros cambios.
Si tu proyecto usa herramientas automatizadas que reescriben URLs http a https, puedes necesitar configurar una excepción para URIs de namespace XML.
Ejemplos
❌ Incorrecto: Usar https en el URI del namespace
<svg xmlns="https://www.w3.org/2000/svg" viewBox="0 0 100 100">
<circle cx="50" cy="50" r="40" fill="blue" />
</svg>
Esto desencadena el error de validación porque https://www.w3.org/2000/svg no es un valor de namespace reconocido.
✅ Correcto: Usar http en el URI del namespace
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<circle cx="50" cy="50" r="40" fill="blue" />
</svg>
✅ Correcto: SVG inline en HTML sin xmlns
Cuando incrustas SVG directamente dentro de un documento HTML5, el atributo xmlns es opcional — el analizador HTML asigna automáticamente el namespace correcto a los elementos <svg>:
<svg viewBox="0 0 100 100">
<circle cx="50" cy="50" r="40" fill="blue" />
</svg>
Esto es HTML5 perfectamente válido. Solo necesitas el atributo xmlns cuando el SVG se sirve como un archivo .svg independiente o se usa dentro de un documento XHTML.
Encuentra problemas como este automáticamente
Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.
Más información: