Darstellung von ESQL-Datentypen für Datum/Zeit

Wenn Ihre Anwendung eine Nachricht an einen Broker sendet, ist die Art und Weise der Interpretation der Nachrichtendaten vom Inhalt der Nachricht selbst und von der Konfiguration des Nachrichtenflusses abhängig. Wenn Ihre Anwendung eine Nachricht in einem physischen XML-Format sendet, die von einem generischen XML-Parser oder dem MRM-Parser interpretiert werden soll, kann die Anwendung Datums- oder Uhrzeitdaten einfügen, die in Form von Basisdatentypen für Datum/Zeit-Angaben des XML-Schemas dargestellt werden können.

Die Datentypen des XML-Schemas werden in ESQL-Datentypen konvertiert, und das Element, das in der logischen Nachrichtenbaumstruktur erstellt wird, entspricht dem konvertierten Typ. Wenn die Datum/Zeit-Daten in einer Eingabenachricht nicht den Regeln des ausgewählten Schema-Datentyps entsprechen, werden die Werte, die der Parser in die logische Nachrichtenbaumstruktur schreibt geändert. Dies gilt auch dann, wenn sich die Nachricht in der MRM-Domäne befindet und Sie den Nachrichtenfluss so konfiguriert haben, dass er die Eingabenachricht prüft. (Die Prüfung steht für generische XML-Nachrichten nicht zur Verfügung.)

Dies hat folgende Auswirkung auf die Teilfelder der Datum/Zeit-Eingabedaten:

Die folgenden Beispiele veranschaulichen diese Aussagen.

Datentypen des XML-Schemas für Eingabedaten Schemaregeln Eingabewert im Bitstrom Wert, der in die logische Baumstruktur geschrieben wird (ESQL-Datentyp in Klammern)
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)

Auswertung bei fehlenden Teilfeldern

Berücksichtigen Sie bei der Auswahl des zu verwendenden Schema-Datentyps für Datum/Zeit, dass fehlende Teilfelder Ausnahmen verursachen können, wenn sich die Nachricht in der MRM-Domäne befindet und Sie den Nachrichtenfluss so konfiguriert haben, dass er Nachrichten auswertet.

Die Schema-Datentypen Gday, gMonth, gMonthDay, gYear und gYearMonth dienen dazu, bestimmte sich wiederholende Zeiträume zu erfassen. Dies kann bei inaktivierter Auswertung zu Unklarheiten führen, weil die sich wiederholenden Zeiträume, die in diesen Schema-Datentypen verwendet werden, von ESQL als bestimmte Zeitpunkte gespeichert werden.

Wenn beispielsweise der 24. des Monats, ein Monat-Tag-Typ (gDay), in die logische Baumstruktur geschrieben wird, werden die fehlenden Teilfelder für Monat und Jahr von der Epoche (Januar 1970) abgeleitet: daraus ergibt sich das exakte Datum 1970-01-24. Wenn Sie einen ESQL-Code erstellen, um dieses Datum zu ändern, indem beispielsweise ein Zeitraum von 10 Tagen hinzugefügt wird, und wenn Sie dann eine Ausgabenachricht generieren, die ausgewertet wird, hat dies eine Ausnahme zur Folge. Der Grund dafür ist, dass das Ergebnis der Berechnung das Datum 1970-02-03 ist, und das ist ungültig, weil das Monatsteilfeld des Datums nicht mehr mit dem Datum der Epoche übereinstimmt.

Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Letzte Aktualisierung : 2009-02-17 15:29:25

ak01005_