XML Schema.
En los últimos días he estado abocado a la divertida tarea de generar un XML Schema que permita la validación de formato y tipos de datos de mensajes xml. Es una aplicación Genexus que está en producción a la cual se le quiere agregar una validación adicional contra dicho XML Schema, para lograr así simplificar la validación de datos.
Se piensa pasar al XSD la validación de tipos de datos, de obligatoriedad o no de los campos, de la anidación de los xml y ver si esta bien formado o no el xml.
La parte menos tecnológico de todo esto, es que el mensaje está descrito en un documento Word, con muchas paginas y tablas, en las cuales se describe como es el mensaje. También hay varios miles de mensajes XML de ejemplo con los cuales se pueden probar.
Al principio, pensé que iba a ser un trabajo mas fácil, pero a medida que fuimos avanzando, aparecieron algunas excepciones:
- Manejo de fechas nulas
- Manejo de elementos en diferentes ordenes.
- Campos obligatorios condicionados por el valor de otro elemento
- El mensaje tiene una jerarquía de 5 niveles!.
Un ejemplo de código (simplificado) podria ser:
&xmlread.Open(&XmlFile)
&xmlread.AddSchema(&XmlSchema, &TargetNameSpace)
&xmlread.ValidationType=3 //Validación contra Schema.
do while not &xmlread.EOF <> 0
&npsp;&xmlread.Read()
If &xmlread.ErrCode <> 0 and Null(&Error)
&Error='Error: ' + str(&xmlread.ErrCode) + ' Desc: ' + &xmlread.ErrDescription )
&xmlread.Close()
Endif
enddo
En algún momento había hecho un programita con GXpublic, que generaba un XML Schema dada una Transaccion, pero nunca lo deje operativo totalmente. Para este caso me hubiese servido bastante.
Comentarios
Publicar un comentario
1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.