Cuando la aplicación envía un mensaje a un intermediario, el modo en que se interpretan los datos del mensaje depende del contenido del propio mensaje y de la configuración del flujo de mensajes. Si la aplicación envía un mensaje personalizado mediante un formato físico XML para que lo interprete el analizador XML genérico o el analizador MRM, la aplicación puede incluir los datos de fecha o de hora representados mediante cualquiera de los tipos de datos de fecha y hora primitivos del esquema XML.
El tipo de datos del esquema XML de cada fragmento de datos se convierte en un tipo de datos ESQL y el elemento creado en el árbol lógico de mensaje es del tipo convertido. Si los datos de fecha y hora de un mensaje de entrada no coinciden con las normas del tipo de datos del esquema elegido, los valores que escribe el analizador en el árbol lógico de mensaje se modifican incluso si el mensaje está en el dominio MRM y ha configurado el flujo de mensajes para validar el mensaje de entrada. (No está disponible la validación para mensajes XML genéricos.)
Esto tiene el efecto siguiente en los subcampos de los datos de fecha y hora de entrada:
Los ejemplos siguientes ilustran estos puntos.
Tipo de datos del esquema XML de los datos de entrada | Normas del esquema | Valor de entrada en la corriente de bits | Valor escrito en el árbol lógico (tipo de datos ESQL entre paréntesis) |
---|---|---|---|
xsd:dateTime | CCYY-MM-DDThh:mm:ss | 2002-12-31T23:59:59 | 2002-12-31 23:59:59 (TIMESTAMP) |
--24 | 1970-01-24 (DATE) | ||
23:59:59 | 23:59:59 (TIME) | ||
xsd:date | CCYY-MM-DD | 2002-12-31 | 2002-12-31 (DATE) |
2002-12-31T23:59:59 | 2002-12-31 (DATE) | ||
-06-24 | 1970-06-24 (DATE) | ||
xsd:time | hh:mm:ss | 14:15:16 | 14:15:16 (TIME) |
xsd:gDay | ---DD | ---24 | 1970-01-24 (DATE) |
xsd:gMonth | --MM | --12 | 1970-12-01 (DATE) |
xsd:gMonthDay | --MM-DD | --12-31 | 1970-12-31 (DATE) |
xsd:gYear | CCYY | 2002 | 2002-01-01 (DATE) |
xsd:gYearMonth | CCYY-MM | 2002-12 | 2002-12-01 (DATE) |
Cuando seleccione el tipo de datos de fecha y hora del esquema, tenga en cuenta que si el mensaje está en el dominio MRM y configura el flujo de mensajes para validar mensajes, los subcampos que faltan puede generar excepciones de validación.
Los tipos de datos del esquema Gday, gMonth, gMonthDay, gYear y gYearMonth se utilizan para registrar los períodos de tiempo recurrentes determinados. Es posible que se cree alguna confusión cuando se activa la validación porque los períodos de tiempo recurrentes que se utilizan en estos tipos de datos del esquema se almacenan mediante ESQL como puntos específicos del tiempo.
Por ejemplo, cuando se escribe en el árbol lógico el día 24 del mes, que es un tipo gDay (un día del mes), los subcampos de mes y año que faltan se proporcionan a partir de la época (Enero 1970) para así ofrecer la fecha específica 1970-01-24. Si codifica ESQL para manipular esta fecha, por ejemplo, añadiendo un intervalo de 10 días y, a continuación, genera un mensaje de salida que se valida, se genera un excepción. Esto es debido a que el resultado del cálculo es 1970-02-03, lo cual no es válido porque el subcampo del mes de la fecha ya no coincide con la fecha de la época.