¿Alguien ha implementado algún proceso para validar un XML contra un fichero de esquema (XSD)?
Gracias.
¿Alguien ha implementado algún proceso para validar un XML contra un fichero de esquema (XSD)?
Gracias.
Hola laukolan.
¿ Cómo validas actualmente el XML con el XSD ?
Saludos
Paco Satué
Hay páginas web por ejemplo Free Online XML Validator (XSD) (liquid-technologies.com).
Donde dandole el fichero XML y el fichero XSD, te dice si tienes algún error.
Ademas hay por hay una librería en javascript para poder validar GitHub - kripken/xml.js: Port of libxml to JavaScript using Emscripten
Pero igual alguien había tenido la necesidad de hacer esto y lo ha realizado de alguna otra manera.
Gracias.
Hola laukolan.
No es un proceso sencillo eso de validar un XML, de hecho la librería xmllint.js ocupa nada más y nada menos que 4Mb.
Desde luego con Velneo que yo sepa no hay nada.
Tienes un ejemplo de uso de la librería xmllint.js en la aplicación Test de código de Ejercicios con Velneo.
En la pestaña de HTML y la rama XML ( Validar con XSD).
Un saludo
Paco Satué
Buenos días Paco, antes de nada muchas gracias por tu tiempo.
En el ejemplo cuado le doy a validar no muestra ningún resultado.
Cuando importo el archivo xmllint.js al proyecto de Velneo me da errores en el script.
Hola laukolan.
Creo que esta librería solo funcionan en los entornos Browser o Node.
El motor de javascript de Velneo es un entorno en el que no disponemos del DOM del explorador necesario en muchas librerías.
Por lo tanto, necesitarás el Visor HTML de Velneo para ejecutar esta librería tal como hago en la aplicación Test de código.
Saludos
Paco Satué
Muchas gracias Paco.
También he visto que igual se puede hacer en Windows mediante un script vb con la función MSXML2.
Si consigo hacerlo, lo dejare por aquí.
He encontrado unas instrucciones:
'Create a schema cache and add books.xsd to it.
'Dim xmlschema 'As MSXML2.XMLSchemaCache50
Set xmlschema =CreateObject("MSXML2.XMLSchemaCache.3.0")
xmlschema.Add "urn:ticketbai:emision", "C:\Users\alvaro\Desktop\validador\ticketBai.xsd"
'Create an XML DOMDocument object.
'Dim xmldom 'As MSXML2.DOMDocument50
Set xmldom = CreateObject("MSXML2.DOMDocument.3.0")
'Assign the schema cache to the DOM document.
'schemas collection.
Set xmldom.schemas = xmlschema
'Load books.xml as the DOM document.
xmldom.async = False
xmldom.Load App.Path & "C:\Users\alvaro\Desktop\validador\FacturaFirmada.xml"
'Return validation results in message to the user.
If xmldom.parseError.errorCode <> 0 Then
MsgBox xmldom.parseError.errorCode & " " & _
xmldom.parseError.reason
Else
MsgBox "No Error"
End If
Gracias.
Hola laukolan.
Usar las librerías XML DOM del sistema operativo es lo ideal y atiende a la demanda de muchos programadores de no estar constantemente reinventando la rueda.
Pero lamentablemente eso choca frontalmente con Velneo y la multiplataforma.
Para el sistema operativo Windows yo recurro muchísimo a la solución de scripts externos y en este caso uso la versatil herramienta AutoIt. Es una forma de encapsular el código VBS y además generar ejecutables sin dependencias.
Échale un vistazo a la siguiente librería AutoIt de XML. Tiene todo lo que hubiéramos soñado tener en Velneo desde hace años.
Saludos
Paco Satué
Muchas gracias Paco.
Estoy realizando una aplicación para gestionar la nueva facturación electrónica en el País vasco (TBAI).
Lo que hay que hacer es generar un XML de la factura, firmarlo y luego enviarlo a hacienda cada vez que se expide una nueva factura. Cada factura contendrá la huella de la factura anterior con lo que sí hay una modificación en una factura se puede detectar.
Al final la firma y el envío los tengo que hacer con scripts vb externos a Velneo con la líbreria Chilkat.
Firmar no se puede con Velneo y el envío tampoco se puede hacer porque la clase velneo xmlhttprequest tiene un error que será corregido en futuras versiones de velneo.
Cita
El caso está en manos del departamento de desarrollo, según me han adelantado ellos, existe algún problema o tema con las librerías SSL del proveedor QT, pero de momento son apreciaciones, porque también han escalado el caso al proveedor y están conciliando con él para determinar el motivo. Tenemos unas sospechas que va de la mano con algún cambio ocurrido entre las ssl 1.1 y la 1.2, pero no hay algo confirmado porque depende también de la revisión del proveedor.Lo que me hubiera gustado es que este proceso se hiciera en tercer plano en el servidor cada vez que se genere una factura.
Cita
Para mantenerte actualizado, hemos estado en constante diálogo con el proveedor de las librerías, en este caso QT, y ya nos confirmaron que es un error por parte de ellos que implica la recopilación de QT, se está trabajando en encontrar una solución que no requiera tanto cambio y pueda ser funcional, cuando tenga mas avances del tema te seguire informando al respecto.
Mi intención y lo bonito es que se manejara todo desde Velneo, asi podía haber sido multiplataforma y poder haber lanzado estos procesos desde un trigger por ejemplo.
Pero es lo que hay.
Gracias de todas maneras.