Pregunta
· 9 abr, 2025

Validacion de un XML contra un esquema XSD

Estoy intentando validar el contenido de un XML contra un esquema XSD, para validar la estructura (nodos obligatorios, etc...)

Estoy intentando utilizar la clase Ens.Util.XML.Validator, como se sugiere en este post:

https://community.intersystems.com/post/validate-xml-message-against-xsd...

Pero al invocar al metodo ValidateStream, si en el schemaSpec le dejo el parametro vacio, simplemente valida que sea una estructura XML correcta.

Al pasarle cualquier valor en schemaSpec, da un error de "SAX XML Parser Error: Unable to Resolve SystemId"

 

¿Algun ejemplo de como indicar el schemaSpec en la validacion? (la ruta del XSD en el disco, por ejemplo, o un esquema XML cargado en el namespace)

Product version: IRIS 2024.2
$ZV: IRIS for UNIX (Ubuntu Server LTS for ARM64 Containers) 2024.2 (Build 247U) Tue Jul 16 2024 09:31:25 EDT
Comentarios (5)2
Inicie sesión o regístrese para continuar

He encontrado en la documentación esto: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls...

He estado haciendo pruebas, y parece que esta es la forma de validar un XML contra un schema. Pasándole los ficheros, ya devuelve una lista de errores:

(En este caso creo que el problema está en el propio schema como tal, ya que incluso validadores online me dan problemas 😅).

Pero vamos, que creo que esta es la forma de hacerlo, no?