Ver Mensaje Individual
  #1  
Antiguo 16-12-2024
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 416
Reputación: 5
rci Va por buen camino
Question Validar XML con esquema XSD - C# .Net

Hola!

Estoy intentando validar un fichero XML contra el esquema XSD utilizando C# .Net

Quiero hacerlo porque en algunos casos el XML que genero tiene algún error y cuando lo envío a un webservice recibo una excepción con el mensaje:
Cita:
Código[4102]. El XML no cumple el esquema. Falta informar campo obligatorio.: Desglose
Si miro dentro del esquema XSD veo que este campo "Desglose" es obligatorio y en el XML no aparece.

He buscado por Internet y he encontrado varios ejemplos pero no consigo que funcione ninguno para mi caso.
Me encuentro con dos situaciones distintas, o me da un error que no tiene que ver con el campo que falta o me acepta el XML como válido cuando no lo es.

El esquema XSD es el siguiente:
h t t ps://prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/SuministroInformacion.xsd

Si lo utilizo directamente para validar el fichero XML que he generado, siguiendo toda la normativa pero sin el elemento Desglose, en lugar de decirme que falta ese elemento, me da el siguiente error:
Cita:
No se ha declarado el elemento 'http://www.w3.org/2000/09/xmldsig#:Signature'
Primero pensaba que se quejaba porque en mi XML no hay el elemento Signature pero mirando el esquema veo que este elemento no es obligatorio.
Aún así, he descargado el fichero XSD, lo he modificado quitando las referencias de Signature y he validado contra ese XSD modificado. En ese caso no da error pero tampoco me indica que falta el elemento Desglose. De esta forma me lo da como válido cuando realmente no lo es.

Después he pensado que cuando intenta validar tiene algún problema al leer dentro del esquema XSD y no reconoce la parte que indica del elemento Signature.
Con el esquema XSD original he intentado añadir el namespace ds con la url "http://www.w3.org/2000/09/xmldsig#" pero nada.
También he intentado añadir el fichero XSD relacionado con esa url xmldsig-core-schema.xsd (que también me he descargado) pero tampoco me funciona.

Alguien ha conseguido validar un fichero XML contra un esquema XSD en C# y podría echarme un cable por favor?

Muchas gracias!!
Responder Con Cita