XML / XPath / XSD

validar XML con XSDcomprueba el contrato de tus datos

Ejecuta con el botón o Ctrl/Cmd+Enter. El ejemplo incluye un esquema principal y un archivo con la definición del tipo.

validar XML con XSD

Entrada XML

XSD actual

El contenido XML y los esquemas se procesan en este navegador, sin subirlos para validarlos.

Usa rutas relativas ASCII, como types/common.xsd. Se resuelven desde el esquema que hace la referencia; no se admiten URL ni rutas fuera de la raíz virtual.

Ejecución manual: 10 segundos con la carga del motor. XML y cada esquema: 1.000.000 caracteres; todos los esquemas: 2.000.000, hasta 20 archivos; profundidad 100.

El resultado está desactualizado. Valida otra vez para exportarlo.

Puedes validar XML con XSD cuando un archivo se abre correctamente pero no cumple lo que espera el receptor. Un campo de cantidad con texto sigue siendo XML bien formado, aunque no respete el tipo entero definido por el esquema.

Este validador XSD utiliza el esquema de entrada que eliges y sus dependencias locales. La validación de esquema XML comprueba las declaraciones reales; no deduce las reglas a partir del nombre de las etiquetas.

Por qué validar XML con XSD aquí

Conserva la estructura de dependencias

Al validar XML con XSD, una declaración en types.xsd puede restringir un valor del documento principal. xs:include y xs:import se resuelven en el conjunto de archivos que aportas; una dependencia ausente produce un fallo visible.

Un esquema principal y dos dependencias locales se conectan con una comprobación XML.

Distingue el origen del fallo

Un valor que no es entero requiere revisar el XML; un tipo sin definir puede exigir corregir el esquema. Los diagnósticos conservan el archivo, la línea disponible y el mensaje original para orientar esa decisión.

Un valor XML marcado se vincula con su línea de origen y un informe de error.

Tres detalles antes de ejecutar

01

Elige el esquema de entrada

La ruta inicial es main.xsd. Las indicaciones xsi:schemaLocation del XML no seleccionan ni descargan otro esquema. Usa el archivo que declara el elemento raíz y añade los archivos de los que depende.

02

Reconstruye las rutas relativas

orders/main.xsd puede referenciar ../types.xsd si sigue dentro de la raíz virtual. Tras leer archivos UTF-8 puedes editar sus rutas. No se permiten dos nombres que se normalicen a la misma ruta.

03

Repite después del último cambio

Editar contenido o rutas cancela el trabajo en curso y deja obsoleto el informe anterior. Vuelve a ejecutar con Ctrl/Cmd+Enter. Cambiar únicamente el esquema visible no modifica la solicitud.

Compilar, comprobar y documentar

Errores del esquema por separado

libxml2 WASM compila XSD 1.0 antes de validar la instancia. Los tipos sin declarar o las estructuras de esquema incorrectas aparecen en una fase distinta de los valores que incumplen las reglas.

Tipos y secuencias reales

El ejemplo define quantity como un entero entre 1 y 100. El motor evalúa elementos obligatorios, límites de ocurrencia, orden de sequence y espacios de nombres. La restricción pattern de XSD utiliza su propia sintaxis de expresiones regulares.

Informes para reproducir problemas

Copia o descarga JSON cuando finalice una comprobación válida o inválida. Incluye fase, motor y diagnósticos capturados. Si no existe una columna conocida, el informe no inventa que el error ocurrió en la primera.

Versiones y límites de entrada

XML 1.0 y XSD 1.0
Se admite XML 1.0 con declaración UTF-8 si se especifica codificación. Se rechazan funciones XSD 1.1 como assert, alternative y override. El atributo version ordinario de schema describe la versión de la aplicación y no cambia el motor.
Referencias locales explícitas
Cada include, import o redefine necesita schemaLocation. Las rutas admiten letras y cifras ASCII, punto, guion bajo, guion y barra. No se admiten URL, escapes porcentuales, rutas absolutas, salidas de la raíz, xml:base ni DOCTYPE.
Tiempo y memoria acotados
XML y cada XSD admiten 1.000.000 caracteres de cadena JavaScript. Los esquemas suman como máximo 2.000.000 caracteres y 20 archivos, incluido el principal. Profundidad máxima 100; el Worker termina a los 10 segundos contando la inicialización. No son límites en megabytes.
Captura parcial de diagnósticos
Se conservan hasta 200 diagnósticos y 4.000 caracteres por mensaje, con una marca si se recortan. Se muestran 50 cada vez. No se exportan fallos de ejecución ni resultados obsoletos, y el analizador puede detenerse antes de detectar todos los errores.
No equivale a aprobación de negocio
No repara XML, genera esquemas, ejecuta Schematron ni comprueba firmas digitales. Un archivo conforme puede ser rechazado por un sistema fiscal o una API que aplique reglas adicionales o una versión distinta.
Reemplazos revisables
Los ejemplos, el vaciado, la lectura de archivos y la eliminación de dependencias muestran una vista previa antes de aplicar. Deshacer recupera una vez las entradas y el informe anterior. La edición de texto es directa y no hay almacenamiento persistente.

Preguntas sobre validar XML con XSD

¿Cómo se comprueba el orden de los elementos de un XML con su esquema?

Declara los elementos dentro de xs:sequence en el orden esperado. El motor comprueba ese orden y las ocurrencias permitidas. Si una etiqueta obligatoria está ausente o desplazada, el XML puede estar bien formado y aun así fallar.

¿Por qué falla la compilación de un esquema que contiene xs:any?

xs:any debe aparecer en una estructura permitida por el lenguaje de esquemas, por ejemplo dentro de una secuencia. No puede añadirse arbitrariamente después de cerrar esa estructura. Consulta primero la fase de compilación y la ubicación del XSD.

¿Cómo se detecta que falta un elemento obligatorio?

La ausencia de un elemento declarado con minOccurs="1" incumple el esquema; este es además el valor por defecto. Revisa el archivo y la posición que ofrece el motor, teniendo en cuenta que el error puede señalar el siguiente elemento o el cierre del contenedor.

¿Se pueden expresar condiciones entre campos con XSD 1.0 o hace falta XSD 1.1?

XSD 1.0 permite restricciones estructurales, pero no todas las condiciones basadas en valores de otros campos. Las aserciones de XSD 1.1 necesitan otro motor y aquí se rechazan. No interpretes una regla no representada como una comprobación de negocio aprobada.

¿Las expresiones regulares de pattern funcionan igual que otras expresiones regulares?

No necesariamente. La sintaxis de pattern de XML Schema tiene reglas diferentes de JavaScript o PCRE; no traslades anclas o anticipaciones sin comprobarlas. Prueba valores que deban pasar y fallar frente al XSD concreto.

¿Un diagnóstico no coincide con lo esperado?

Reproduce el fallo con el mismo conjunto

Para validar XML con XSD de forma reproducible, guarda el documento, el esquema principal y sus rutas de dependencia junto al informe. El resultado corresponde a esos datos en ese momento.