Validador XSD
Pega un documento XML y su esquema XSD para comprobar que el XML sigue el esquema: orden y número de elementos, atributos obligatorios, tipos de datos, enumeraciones, patrones, longitudes y rangos. Cada error muestra la línea de tu XML y lo que esperaba el esquema.
Última actualización:
La validación se ejecuta en tu navegador con un motor XML Schema 1.0 integrado. No se sube nada. Consejo: Ctrl + Intro valida.
Cómo usar Validador XSD
- Pega el XML en el editor de la izquierda, o abre o suelta un archivo. Primero se carga un pedido de ejemplo con errores.
- Pega el XSD en el editor de la derecha. Si usa xs:include o xs:import, añade esos archivos con + .xsd importado.
- Lee el resultado. El verde significa que el XML cumple el esquema; si no, cada error explica qué estaba mal y qué se esperaba.
- Haz clic en un error para ir a su línea. Las líneas con errores se resaltan en rojo en los números de línea.
- Corrige y vuelve a comprobar. La validación se repite mientras escribes, o pulsa Validar XML (Ctrl + Intro).
Cómo funciona la validación XSD
Un validador recorre el árbol XML desde la raíz hacia abajo. La raíz debe coincidir con una declaración de elemento global. Después, el tipo de cada elemento decide lo que puede contener:
- Los tipos simples (como
xs:dateo unxs:stringrestringido) solo admiten texto. El texto se normaliza en cuanto a espacios y se comprueba con el tipo y sus facetas. - Los tipos complejos admiten atributos y, según el modelo de contenido, elementos hijos en una
sequence(orden fijo), unachoice(uno de ellos) o unall(cualquier orden, cada uno como máximo una vez), repetidos según permitanminOccurs/maxOccurs. - Las restricciones de identidad (
xs:unique,xs:key,xs:keyref) se comprueban al final, en los elementos que seleccionan.
Errores comunes de validación XSD y soluciones
| Error | Causa habitual | Solución |
|---|---|---|
| No hay ninguna declaración de elemento global que coincida | El nombre o el espacio de nombres de la raíz difiere del esquema | Añade el targetNamespace del esquema como xmlns en el XML |
| El elemento no se esperaba aquí | Orden incorrecto en una secuencia, falta un elemento antes o hay demasiadas repeticiones | Sigue el orden indicado en Se esperaba |
| El elemento está incompleto | Falta un hijo obligatorio (minOccurs ≥ 1) al final | Añade el elemento indicado |
| El atributo no está permitido | Errata, mayúsculas incorrectas o un atributo que el tipo no declara | Los nombres distinguen mayúsculas de minúsculas; revisa la ortografía |
| El valor no es uno de los permitidos | Valor fuera de un xs:enumeration | Usa exactamente uno de los valores indicados |
| El valor no coincide con el patrón | Falla la regex de xs:pattern; los patrones deben coincidir con todo el valor | Revisa el formato; p. ej. ORD-\d{5} necesita exactamente cinco dígitos |
| No es una fecha válida | xs:date necesita YYYY-MM-DD, y el día debe existir | Escribe 2026-03-14, no 14/03/2026 |
| Tiene 3 decimales | Se superó fractionDigits o totalDigits | Redondea el número |
Consejos
- elementFormDefault importa. Con
elementFormDefault="qualified", los elementos hijos también deben estar en el espacio de nombres de destino, algo de lo que se encarga unxmlns="…"predeterminado en la raíz. - xsi:schemaLocation es solo una pista. Los validadores, incluido este, usan el esquema que proporcionas en lugar de descargar la ubicación indicada en el XML.
- ¿Aún no tienes esquema? Crea un borrador a partir de un documento de ejemplo con el generador de XML a XSD, y comprueba la sintaxis básica con el validador de XML.
Preguntas frecuentes
¿Cuál es la diferencia entre XML bien formado y XML válido?
El XML bien formado sigue las reglas básicas de sintaxis: un único elemento raíz, etiquetas correctamente anidadas y cerradas y atributos entre comillas. El XML válido está bien formado y además sigue un esquema, que define qué elementos y atributos pueden aparecer, en qué orden, cuántas veces y con qué tipos de datos. Esta herramienta comprueba ambas cosas: primero la sintaxis y luego las reglas del XSD.
¿Cómo valido XML con un XSD?
Pega el XML a la izquierda y el esquema a la derecha. El elemento raíz del XML debe coincidir con un xs:element global declarado en el esquema, incluido su espacio de nombres. Después se comprueba cada elemento hijo, atributo y valor de texto con los tipos declarados, y cada infracción se muestra con su número de línea.
¿Por qué aparece 'No hay ninguna declaración de elemento global que coincida'?
El nombre o el espacio de nombres del elemento raíz no coincide con ningún xs:element de nivel superior del esquema. Si el esquema tiene un targetNamespace, el XML debe declarar el mismo espacio de nombres, por ejemplo xmlns="urn:example:orders". Los elementos locales declarados dentro de un tipo no se pueden usar como raíz.
¿Qué significa 'El elemento no se esperaba aquí'?
El elemento no está permitido en ese punto del modelo de contenido: puede estar en un orden incorrecto dentro de un xs:sequence, aparecer más veces de las que permite maxOccurs o no estar declarado. El mensaje enumera los elementos que esperaba el esquema en esa posición, lo que suele indicar directamente la solución, como un elemento obligatorio que falta antes.
¿Admite xs:include y xs:import?
Sí, pero el navegador no puede obtener automáticamente archivos de tu disco ni de la red. Añade los archivos de esquema referenciados con + .xsd importado. Hasta que los añadas, la herramienta te avisa y omite los tipos y elementos que proceden de los archivos que faltan.
¿Qué versión de XSD se admite?
XML Schema 1.0, que es la que usan la mayoría de los esquemas reales. Las funciones de XSD 1.1, como xs:assert, xs:alternative y xs:override, no se evalúan; cuando un esquema las usa, se muestra una advertencia. Los patrones de expresiones regulares se traducen a JavaScript, así que algunas funciones poco comunes de las regex de XSD, como los nombres de bloques Unicode, se aproximan.
¿Se sube mi XML a algún sitio?
No. Ambos archivos los analiza el analizador XML de tu navegador y los valida JavaScript en esta página, así que los datos privados y los esquemas internos nunca salen de tu equipo.
¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?
Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.