이 주제에서는 XMLNS 도메인에 포함된 메시지를 처리하는 데 특정한 정보 및 XML 구문 분석기에 의해 구문 분석된 정보를 제공합니다. XMLNS 도메인은 XML 도메인의 확장이며 네임스페이스 지원을 제공합니다. 메시지 본문 컨텐츠 가공 주제의 정보와 함께 XML 도메인에서 메시지 가공에서 XML 메시지에 대해 제공된 지침을 따르십시오.
다음 예에서는 ESQL을 사용하여 네임스페이스에 대해 작업하는 방법을 보여줍니다. 이 예에서는 전체 네임스페이스 URI 대신 ESQL문에 접두부를 사용할 수 있도록 기본 모듈 시작 부분에 네임스페이스 상수를 선언합니다.
네임스페이스 상수는 ESQL에만 영향을 줍니다. 이 상수는 출력 메시지에 생성된 접두부는 제어하지 않습니다. 생성된 출력 메시지의 접두부는 네임스페이스 선언에서 제어합니다. XML.NamespaceDecl 상관 이름을 사용하여 트리에 네임스페이스 선언을 포함시킬 수 있습니다. 그런 다음 이러한 요소는 출력 메시지의 네임스페이스 선언을 생성하는 데 사용됩니다.
출력 메시지 생성 시 요소 또는 속성이 규정된 네임스페이스에 해당 네임스페이스 선언이 없는 경우 NSn 형식의 접두부를 사용하여 네임스페이스 선언이 자동으로 생성됩니다. 여기서 'n'은 양의 정수입니다.
CREATE COMPUTE MODULE xmlns_doc_flow_Compute CREATE ROUTINE Main() RETURNS BOOLEAN BEGIN CALL CopyMessageHeaders(); -- Declaration of namespace constants 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 declaration to associate prefix 'space1' with the namespace SET OutputRoot.XMLNS.message.(XML.NamespaceDecl)xmlns:space1 = 'http://www.ibm.com/space1'; SET OutputRoot.XMLNS.message.sp1:data1 = 'Hello!'; -- Default Namespace declaration 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;
<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>