Skip to main content
Validación HTML

El atributo con el nombre local “xmlns:w” no es serializable como XML 1.0.

Acerca de este problema HTML

HTML5 utiliza un formato de serialización específico que es distinto de XML. Mientras que XML te permite declarar prefijos de espacios de nombres arbitrarios usando atributos xmlns:prefix, el analizador HTML no reconoce ni procesa estas declaraciones. La especificación HTML solo admite un pequeño conjunto de espacios de nombres predefinidos — el espacio de nombres HTML predeterminado, SVG (http://www.w3.org/2000/svg), MathML (http://www.w3.org/1998/Math/MathML), XLink, XML, y XMLNS — y estos se manejan implícitamente a través de los elementos de incrustación apropiados (<svg>, <math>), no a través de declaraciones xmlns: explícitas.

La frase “no es serializable como XML 1.0” en el mensaje del validador significa que este atributo no puede ser procesado de ida y vuelta entre el analizador HTML y un serializador XML. El analizador HTML trata xmlns:w como un nombre de atributo opaco que contiene dos puntos, en lugar de como una declaración de espacio de nombres. Si fueras a serializar este DOM de vuelta a XML, el resultado sería inválido porque xmlns:w sería interpretado como una declaración de espacio de nombres para un prefijo que podría entrar en conflicto con el uso real de elementos.

Este problema casi siempre se origina por contenido exportado o pegado desde Microsoft Word, Excel u otras aplicaciones de Office. Estas herramientas generan marcado cargado con declaraciones de espacios de nombres propietarias como xmlns:w, xmlns:o (Office), xmlns:v (VML), y xmlns:x (Excel). Junto con estas declaraciones vienen elementos y atributos específicos de Office (p. ej., <w:WordDocument>, <o:OfficeDocumentSettings>) que no tienen significado en un navegador web y sobrecargan tu HTML.

Además de ser un error de validación, dejar este marcado en su lugar crea varios problemas. Añade peso innecesario significativo a tus páginas, hace que el código fuente sea más difícil de leer y mantener, y señala que el HTML fue generado automáticamente sin limpieza — lo que puede afectar la mantenibilidad a largo plazo. Los navegadores ignoran silenciosamente estos atributos y elementos, por lo que no proporcionan ningún beneficio funcional.

Cómo solucionarlo

  1. Elimina todos los atributos prefijados con xmlns: de tus elementos HTML, incluyendo xmlns:w, xmlns:o, xmlns:v, xmlns:x, y cualquier otro.
  2. Elimina cualquier elemento específico de Office que use esos prefijos de espacios de nombres, como <o:p>, <w:WordDocument>, o <v:shapetype>. Estos elementos no tienen significado en HTML5.
  3. Limpia los comentarios condicionales asociados como <!--[if gte mso 9]> que a menudo envuelven bloques específicos de Office.
  4. Considera usar una herramienta de limpieza de pegado si regularmente pegas contenido desde Word en tu HTML. Muchas plataformas CMS y editores de texto ofrecen opciones de “pegar como texto plano” o “limpiar HTML”.

Si realmente necesitas trabajar con espacios de nombres Office Open XML, usa un formato basado en XML apropiado (XHTML servido como application/xhtml+xml, o documentos OOXML) en lugar de HTML5 estándar.

Ejemplos

Incorrecto — Declaraciones de espacios de nombres de Office en HTML

Este marcado es típico de contenido guardado o exportado desde Microsoft Word:

<html xmlns:w="urn:schemas-microsoft-com:office:word"
  xmlns:o="urn:schemas-microsoft-com:office:office"
  xmlns:v="urn:schemas-microsoft-com:vml">
  <head>
    <title>Report</title>
    <!--[if gte mso 9]>
    <w:WordDocument>
      <w:View>Normal</w:View>
    </w:WordDocument>
    <![endif]-->
  </head>
  <body>
    <p class="MsoNormal">Hello world<o:p></o:p></p>
  </body>
</html>

Correcto — HTML limpio sin marcado de Office

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Report</title>
  </head>
  <body>
    <p>Hello world</p>
  </body>
</html>

Incorrecto — Un solo espacio de nombres en el elemento <html>

Incluso una sola declaración de espacio de nombres personalizado desencadena el error:

<html xmlns:w="urn:schemas-microsoft-com:office:word">
  <head>
    <title>My Page</title>
  </head>
  <body>
    <p>Content here.</p>
  </body>
</html>

Correcto — Elimina el atributo completamente

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My Page</title>
  </head>
  <body>
    <p>Content here.</p>
  </body>
</html>

Ten en cuenta que el atributo predeterminado xmlns="http://www.w3.org/1999/xhtml" en el elemento <html> está permitido (aunque innecesario en HTML5), pero cualquier declaración de espacio de nombres prefijada como xmlns:w no lo está.

Encuentra problemas como este automáticamente

Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.

Ayúdanos a mejorar nuestras guías

¿Te ha sido útil esta guía?

¿Listo para validar tus sitios?
Inicia tu prueba gratuita hoy.