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:

    …
    Esperando datosPega un documento XML y su esquema XSD.

      La validación se ejecuta en tu navegador con un motor XML Schema 1.0 integrado. No se sube nada. Consejo: Ctrl + Intro valida.

      Publicidad
      Publicidad

      Cómo usar Validador XSD

      1. Pega el XML en el editor de la izquierda, o abre o suelta un archivo. Primero se carga un pedido de ejemplo con errores.
      2. Pega el XSD en el editor de la derecha. Si usa xs:include o xs:import, añade esos archivos con + .xsd importado.
      3. Lee el resultado. El verde significa que el XML cumple el esquema; si no, cada error explica qué estaba mal y qué se esperaba.
      4. 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.
      5. 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:date o un xs:string restringido) 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), una choice (uno de ellos) o un all (cualquier orden, cada uno como máximo una vez), repetidos según permitan minOccurs/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

      ErrorCausa habitualSolución
      No hay ninguna declaración de elemento global que coincidaEl nombre o el espacio de nombres de la raíz difiere del esquemaAñ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 repeticionesSigue el orden indicado en Se esperaba
      El elemento está incompletoFalta un hijo obligatorio (minOccurs ≥ 1) al finalAñade el elemento indicado
      El atributo no está permitidoErrata, mayúsculas incorrectas o un atributo que el tipo no declaraLos nombres distinguen mayúsculas de minúsculas; revisa la ortografía
      El valor no es uno de los permitidosValor fuera de un xs:enumerationUsa exactamente uno de los valores indicados
      El valor no coincide con el patrónFalla la regex de xs:pattern; los patrones deben coincidir con todo el valorRevisa el formato; p. ej. ORD-\d{5} necesita exactamente cinco dígitos
      No es una fecha válidaxs:date necesita YYYY-MM-DD, y el día debe existirEscribe 2026-03-14, no 14/03/2026
      Tiene 3 decimalesSe superó fractionDigits o totalDigitsRedondea 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 un xmlns="…" 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.

      Herramientas relacionadas

      Ver todas las de Formateadores y validadores de código →