Representação dos Tipos de Dados de Data/Hora do ESQL

Quando seu aplicativo envia uma mensagem para um intermediário, a forma como os dados da mensagem são interpretados depende do conteúdo da própria mensagem e da configuração do fluxo de mensagens. Se o seu aplicativo envia uma mensagem a ser interpretada pelo analisador XML genérico ou o analisador MRM, que é ajustado por um formato físico XML, o aplicativo pode incluir dados de data ou hora que são representados por qualquer um dos tipos de dados primitivos de data/hora de Esquema XML.

O tipo de dados do Esquema XML de cada parte dos dados é convertido para um tipo de dados ESQL e o elemento que é criado na árvore de mensagens lógicas é do tipo convertido. Se os dados de datetime em uma mensagem de entrada não corresponderem às regras do tipo de dados do esquema escolhido, os valores que o analisador grava na árvore de mensagens lógicas serão modificados, mesmo que a mensagem esteja no domínio MRM e você tenha configurado o fluxo de mensagens para validar a mensagem de entrada. (A validação não está disponível para mensagens XML genéricas).

Isso tem o seguinte efeito nos subcampos dos dados de data e hora de entrada:

Os seguintes exemplos ilustram esses pontos.

Tipo de dados do Esquema XML de Dados de Entrada Regras do esquema Valor de entrada no fluxo de bits Valor gravado na árvore lógica (tipo de dados ESQL entre colchetes)
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)

Validação com Subcampos Ausentes

Ao considerar qual tipo de dados de datetime do esquema utilizar, lembre-se de que se a mensagem estiver no domínio MRM e se você configurar o fluxo de mensagens para validaá-las, os subcampos ausentes poderão provocar exceções de validação.

Os tipos de dados do esquema Gday, gMonth, gMonthDay, gYear e gYearMonth são utilizados para registrar períodos de tempo recorrentes específicos. Existe uma confusão potencial quando a validação é ativada, porque os períodos de tempo recorrentes que são utilizados nesses tipos de dados do esquema são armazenados pelo ESQL como pontos específicos no tempo.

Por exemplo, quando o 24º dia do mês, que é um tipo gDay (um dia do mês), é gravado na árvore lógica, os subcampos de mês e ano ausentes são fornecidos a partir da época (janeiro de 1970) para fornecer a data específica 1970-01-24. Se você codificar o ESQL para manipular essa data, por exemplo, incluindo um intervalo de 10 dias e, em seguida, gerar uma mensagem de saída validada, surgirá uma exceção. Isso ocorre porque o resultado do cálculo é 1970-02-03, o que é inválido porque o subcampo de mês da data não corresponde mais à data da época.

Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:12:41

ak01005_