WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

Mit Namespaces arbeiten

Das folgende Beispiel zeigt die Verwendung von ESQL bei der Arbeit mit Namespaces.

Namespacekonstanten werden beim Start des Hauptmoduls deklariert; daher können Sie in den ESQL-Anweisungen Präfixe anstatt der vollständigen URIs der Namespaces verwenden. Die Namespacekonstanten wirken sich nur auf den ESQL-Code aus, nicht auf die Präfixe, die in der Ausgabenachricht erstellt werden. Die Präfixe in der generierten Ausgabenachricht werden durch die Namespacedeklarationen in der Nachrichtenbaumstruktur gesteuert. Namespacedeklarationen können mithilfe des Feldtyps 'XML.NamespaceDecl' in die Baumstruktur aufgenommen werden. Diese Elemente werden dann für die Generierung von Namespacedeklarationen in der Ausgabenachricht verwendet.

Wenn der Parser bei der Generierung der Ausgabenachricht einen Namespace feststellt, für den keine entsprechende Namespacedeklaration vorliegt, wird automatisch ein Präfix generiert; dieses Präfix hat das Format 'NSn', wobei 'n' eine positive ganze Zahl ist.

CREATE COMPUTE MODULE xmlns_doc_flow_Compute
CREATE FUNCTION Main() RETURNS BOOLEAN 
BEGIN 
CALL CopyMessageHeaders();
-- Deklaration der Namespacekonstanten -- 
Diese werden nur von ESQL verwendet

DECLARE sp1 NAMESPACE 'http://www.ibm.com/space1'; 
DECLARE sp2 NAMESPACE 'http://www.ibm.com/space2'; 
DECLARE sp3 NAMESPACE 'http://www.ibm.com/space3';  

-- Namespacedeklaration für das Präfix 'space1'  
SET OutputRoot.XMLNS.message.(XML.NamespaceDecl)xmlns:space1 = 'http://www.ibm.com/space1';   
SET OutputRoot.XMLNS.message.sp1:data1 = 'Hello!';         

-- Standardmäßige Namespacedeklaration (leeres Präfix)  
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!';  
RETURN TRUE; 
END;  

CREATE PROCEDURE 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 verarbeitet 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="http://www.ibm.com/space3>Bonjour!</NS1:data3>
</message>
Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:20:29


TaskthemaTaskthema | Version 8.0.0.5 | ac67172_