Sie können die Namespace-Unterstützung für Nachrichten nutzen, die vom MRM-Parser syntaktisch analysiert werden.
Wenn Sie auf Elemente einer Nachricht zugreifen möchten und Namespaces aktiviert sind, müssen Sie bei der Codierung des ESQL-Verweises auf das Element den Namespace einfügen. Andernfalls durchsucht der Broker den Namespace 'notarget'. Wird das Element im Namespace 'notarget' nicht gefunden, durchsucht der Broker alle anderen bekannten Namespaces im Nachrichtenverzeichnis (d. h. innerhalb der eingesetzten Nachrichtengruppe). Geben Sie aus Gründen der Leistung und Integrität immer die Namespaces an, falls diese relevant sind.
Die effektivste Weise des Verweises auf Elemente, wenn Namespaces aktiviert sind, besteht in der Definierung einer Namespace-Konstante und deren Verwendung in den entsprechenden ESQL-Anweisungen. So wird die Lesbarkeit und Verwaltung Ihres ESQL-Codes erheblich vereinfacht.
Definieren Sie eine Konstante mit Hilfe der Anweisung DECLARE NAMESPACE:
DECLARE ns01 NAMESPACE 'http://www.ns01.com' . . SET OutputRoot.MRM.Element1 = InputBody.ns01:Element1;
ns01 wird auf Grund seiner Deklarationsweise richtigerweise als Namespace interpretiert.
Sie können für die Deklaration eines Namespace auch eine CHARACTER-Variable verwenden:
DECLARE ns02 CHARACTER 'http://www.ns02.com' . . SET OutputRoot.MRM.Element2 = InputBody.{ns02}:Element2;
Wenn Sie diese Methode verwenden, müssen Sie die deklarierte Variable in geschweifte Klammern einschließen, um sicherzustellen, dass sie als Namespace interpretiert wird.
Wenn Sie befürchten, dass eine CHARACTER-Variable geändert werden könnte, können Sie eine CONSTANT CHARACTER-Deklaration verwenden:
DECLARE ns03 CONSTANT CHARACTER 'http://www.ns03.com' . . SET OutputRoot.MRM.Element3 = InputBody.{ns03}:Element3;
Sie können einen Namespace, eine Konstante und eine Variable innerhalb eines Moduls oder in einer Funktion deklarieren. Im Schemabereich (d. h. außerhalb eines Modulbereichs) können Sie jedoch nur einen Namespace oder eine Konstante deklarieren.
Das Video-Beispielprogramm bietet weitere Beispiele für die Verwendung von Namespaces.
Da Namespaces in Version 2.1 nicht unterstützt werden, können Sie für einen Broker der Version 2.1 keine Nachrichtengruppen und Nachrichtenflüsse einsetzen, die Namespaces verwenden.