WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Cómo trabajar con espacios de nombres

El ejemplo siguiente muestra cómo utilizar ESQL para trabajar con espacios de nombres.

Las constantes de espacio de nombres se declaran al principio del módulo principal para que pueda utilizar prefijos en la sentencia ESQL en lugar de los URI de espacios de nombres completos. Las constantes de espacio de nombres sólo afectan a ESQL; no controlan los prefijos que se generan en el mensaje de salida. Los prefijos del mensaje de salida generado los controlan las declaraciones de espacio de nombres en el árbol de mensaje. Puede incluir declaraciones de espacio de nombres en el árbol utilizando el tipo de campo XML.NamespaceDec. Entonces estos elementos se utilizan para generar declaraciones de espacio de nombres en el mensaje de salida.

Si cuando se genera el mensaje de salida, el analizador encuentra un espacio de nombres para el que no se ha encontrado ninguna declaración de espacio de nombre correspondiente, se genera automáticamente un prefijo utilizando los prefijos de tipo NSn, donde n es un entero positivo.

CREATE COMPUTE MODULE xmlns_doc_flow_Compute
CREATE FUNCTION Main() RETURNS BOOLEAN 
BEGIN 
CALL CopyMessageHeaders();
-- Declaración de constantes de espacio de nombres -- 
Sólo las utiliza ESQL

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

-- Declaración de espacio de nombres para el prefijo 'space1'  
SET OutputRoot.XMLNS.message.(XML.NamespaceDecl)xmlns:space1 = 'http://www.ibm.com/space1';   
SET OutputRoot.XMLNS.message.sp1:data1 = 'Hello!';         

-- Declaración de espacio de nombres predeterminado ( prefijo vacío )  
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;
Cuando se procesa este ESQL, se genera el mensaje de salida siguiente:
<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>
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

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

        
        Última actualización:
        
        Última actualización: 2015-02-28 16:58:55


Tema de tareaTema de tarea | Versión 8.0.0.5 | ac67172_