Fechas nulas y XML/SOAP

Rusia-Oso-420x333Hoy cuando escribimos una fecha nula (date o datetime) en un archivo XML con GeneXus, está grabando
<Fecha>0000-00-00T00:00:00</Fecha>

Que problemas trae esto?

Esa no es una fecha válida en XML por lo que cuando esto se intenta utilizar interactuando con otros sistemas, da errores al intentar leerlo. Por ejemplo, si el xml que se esta generando es un SOAP, el mismo no pasa la validación del XML schema del mismo. Si queremos recibir un parámetro fecha con un valor nulo, hay que ponerle algún valor artificial al mismo (que simule el nulo, como DateTime mínimo o máximo) lo cual complica la programación o hay que recibir/enviar el parámetro como string y manipular el formato del mismo.

Seria conveniente, que cuando aparece una fecha nula se pudiera grabar

<Fecha xsi:nil="true"></Fecha>

que es una forma “mas correcta” de escribir estos XML.

Revisando los SACs veo que hay varios que tratan el tema y es bueno que se solucione pronto.

29347  Agregar el Valor de NIL a la propiedad XML Serialize del Item del SDT

22103 Manejo de Null en SDT ( en XML )

28521 Nueva propiedad, XML Serialize, permite escribir o no los tags de elementos nulos del SDT en su formato XML

Espero se pueda solucionar pronto, pues cuanto mas tiempo pase, se van a seguir generando webservices y xml con formatos que no cumplen con los estandard, lo cual complica mucho la conexión de aplicaciones Genexus con el resto de las aplicaciones.

Comentarios

Entradas más populares de este blog

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Aplicación monolítica o distribuida?

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.