Este tema le proporciona información específica sobre cómo manejar los mensajes pertenecientes al dominio XMLNS y que analiza el analizador XML genérico. El dominio XMLNS es una extensión del dominio XML y proporciona soporte de espacio de nombres. Siga las indicaciones que se proporcionan en Manipulación de mensajes en el dominio XML para mensajes XML, junto con la información del tema Manipular el contenido del cuerpo del mensaje.
El ejemplo siguiente le muestra cómo utilizar ESQL para trabajar con espacios de nombres. El ejemplo declara las constantes de espacio de nombre al principio del módulo principal, de modo que puede utilizar prefijos en las sentencias ESQL en lugar de los URI de espacio de nombres completos.
Las constantes de espacio de nombre solo afectan al ESQL y no controlan los prefijos generados en el mensaje de salida. Los prefijos del mensaje de salida generado se controlan mediante declaraciones de espacio de nombres. Puede incluir declaraciones de espacios de nombres en el árbol utilizando el nombre de correlación de XML.NamespaceDecl. Estos elementos se utilizan a continuación para generar las declaraciones de espacio de nombres en el mensaje de salida.
Si cuando se genera el mensaje de salida, el espacio de nombres con el que se califica un elemento o atributo no tiene una declaración de espacio de nombres correspondiente, se genera una automáticamente utilizando prefijos con formato NSn, siendo n un entero positivo.
CREATE COMPUTE MODULE xmlns_doc_flow_Compute CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN CALL CopyMessageHeaders(); -- Declaración de las constantes del espacio de nombres 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 del espacio de nombres para asociar el prefijo 'space1' con el espacio de nombres SET OutputRoot.XMLNS.message.(XML.NamespaceDecl)xmlns:space1 = 'http://www.ibm.com/space1'; SET OutputRoot.XMLNS.message.sp1:data1 = 'Hello!'; -- Declaración del espacio de nombres por omisión 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 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;
<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>
Conceptos relacionados
Flujos de mensajes
Dominios y analizador XML
ESQL
Tareas relacionadas
Diseño de un flujo de mensajes
Definición del contenido del flujo de mensajes
Manipulación de mensajes en el dominio XML
Referencia relacionada
ESQL
Sentencia DECLARE
Sentencia SET
Avisos |
Marcas registradas |
Descargas |
Biblioteca |
Soporte |
Información de retorno (feedback)
![]() ![]() |
ac17330_ |