Nachrichten in der XMLNS-Domäne bearbeiten

Dieses Thema enthält Informationen, die sich speziell auf die Verarbeitung von Nachrichten beziehen, die der XMLNS-Domäne angehören und vom generischen XML-Parser syntaktisch analysiert werden. Die XMLNS-Domäne ist eine Erweiterung der XML-Domäne und bietet ein e Namespace-Unterstützung. Halten Sie sich an die Richtlinien für XML-Nachrichten, die im Abschnitt Nachrichten in der XML-Domäne bearbeiten genannt werden, sowie an die Informationen im Abschnitt Inhalt des Hauptteils einer Nachricht bearbeiten.

Das folgende Beispiel zeigt die Verwendung von ESQL bei der Arbeit mit Namespaces. In dem Beispiel werden Namespace-Konstanten am Anfang des Hauptmoduls deklariert, damit Sie anstelle der vollständigen Namespace-URIs Präfixe in den ESQL-Anweisungen verwenden können.

Die Namespace-Konstanten wirken sich nur auf den ESQL-Code aus; sie steuern nicht die Präfixe, die in der Ausgabenachricht generiert werden. Die Präfixe in der generierten Ausgabenachricht werden von Namespace-Deklarationen gesteuert. Sie können unter Verwendung des Korrelationsnamens 'XML.NamespaceDecl' Namespace-Deklarationen in der Baumstruktur einfügen. Diese Elemente werden dann für die Generierung von Namespace-Deklarationen in der Ausgabenachricht verwendet.

Wenn der Namespace, über den ein Element oder Attribut qualifiziert wird, bei der Generierung der Ausgabenachricht keine entsprechende Namespace-Deklaration hat, wird automatisch eine generiert, wobei Präfixe der Form NSn verwendet werden. Hierbei steht n für eine positive ganze Zahl.

CREATE COMPUTE MODULE xmlns_doc_flow_Compute
CREATE ROUTINE Main() RETURNS BOOLEAN
             BEGIN
CALL CopyMessageHeaders();

-- Deklaration von Namespace-Konstanten
DECLARE sp1 NAMESPACE 'http://www.ibm.com/space1';
DECLARE sp2 NAMESPACE 'http://www.ibm.com/space2';
DECLARE sp3 NAMESPACE 'http://www.ibm.com/space3';

-- Namespace-Deklaration für die Zuordnung des Präfixes 'space1' zum Namespace
SET OutputRoot.XMLNS.message.(XML.NamespaceDecl)xmlns:space1 = 'http://www.ibm.com/space1';  
SET OutputRoot.XMLNS.message.sp1:data1 = 'Hello!';      
 
-- Standard-Namespace-Deklaration
SET OutputRoot.XMLNS.message.sp2:data2.(XML.NamespaceDecl)xmlns = 'http://www.ibm.com/space2';
SET OutputRoot.XMLNS.message.sp2:data2.sp2:subData1 = 'Hola!';
SET OutputRoot.XMLNS.message.sp2:data2.sp2:subData2 = 'Guten Tag!';

SET OutputRoot.XMLNS.message.sp3:data3 = 'Bonjour!';

SET OutputRoot.Properties.MessageDomain = 'XMLNS';

RETURN TRUE;
END;

CREATE ROUTINE CopyMessageHeaders() BEGIN
DECLARE I INTEGER 1;
DECLARE J INTEGER CARDINALITY(InputRoot.*[]);
WHILE I < J DO
                                 SET OutputRoot.*[I] = InputRoot.*[I];
                                 SET I = I + 1;
                         END WHILE;
END;

END MODULE;
Wenn dieser ESQL-Code ausgeführt wird, wird die folgende Ausgabenachricht generiert:
<message xmlns:space1="http://www.ibm.com/space1">
 <space1:data1>Hello!</space1:data1>
 <data2 xmlns="http://www.ibm.com/space2">
  <subData1>Hola!</subData1>
  <subData2>Guten Tag!</subData2>
 </data2>
 <NS1:data3 xmlns:NS1="http://www.ibm.com/space3">Bonjour!</NS1:data3>
</message>
Zugehörige Konzepte
Nachrichtenflüsse - Übersicht
XML-Parser und -Domänen
Übersicht zu ESQL
Zugehörige Tasks
Nachrichtenfluss entwerfen
Nachrichtenflussinhalt definieren
Nachrichten in der XML-Domäne bearbeiten
Zugehörige Verweise
ESQL-Referenz
DECLARE-Anweisung
SET-Anweisung
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2005 Letzte Aktualisierung: Nov 17, 2005
ac17330_