MRM 구문 분석기로 구문 분석되는 메시지의 네임스페이스 지원을 이용할 수 있습니다.
메시지 요소에 액세스하고자 하며 네임스페이스를 사용하는 경우, ESQL 참조를 요소에 코드화할 때 네임스페이스를 포함시켜야 합니다. 그렇게 하지 않은 경우, 브로커는 notarget 네임스페이스를 검색합니다. notarget 네임스페이스에 요소가 들어 있지 않으면, 브로커는 메시지 사전(즉, 전개된 메시지 세트 내에서)에서 알려진 다른 모든 네임스페이스를 검색합니다. 성능 및 무결성을 위해 네임스페이스를 지정하십시오(적용될 경우).
네임스페이스를 사용할 때 요소를 가리키는 가장 효율적인 방법은 네임스페이스 상수를 정의하고 적절한 ESQL문에서 이 상수를 사용하는 것입니다. 이 상수를 사용하면 ESQL 코드를 보다 쉽게 읽고 유지보수합니다.
DECLARE NAMESPACE문을 사용하여 상수를 정의합니다.
DECLARE ns01 NAMESPACE 'http://www.ns01.com' . . SET OutputRoot.MRM.Element1 = InputBody.ns01:Element1;
ns01은 선언된 방법 때문에 네임스페이스로서 올바로 해석됩니다.
CHARACTER 변수를 사용하여 네임스페이스를 선언할 수도 있습니다.
DECLARE ns02 CHARACTER 'http://www.ns02.com' . . SET OutputRoot.MRM.Element2 = InputBody.{ns02}:Element2;
이 방법을 사용하는 경우, 확실히 네임스페이스로 해석되도록 선언된 변수를 중괄호로 묶어 표시해야 합니다.
CHARACTER 변수가 변경될 수 있다고 염려되는 경우, CONSTANT CHARACTER 선언을 사용할 수 있습니다.
DECLARE ns03 CONSTANT CHARACTER 'http://www.ns03.com' . . SET OutputRoot.MRM.Element3 = InputBody.{ns03}:Element3;
모듈 또는 함수 내에서 네임스페이스, 상수 및 변수를 선언할 수 있습니다. 단, 스키마 영역(즉, 모듈 영역 외부)에서는 네임스페이스 또는 상수만 선언할 수 있습니다.
Video 샘플은 네임스페이스 사용의 추가적인 예를 제공합니다.
네임스페이스는 버전 2.1에서 지원되지 않으므로, 네임스페이스를 사용하는 메시지 세트 또는 메시지 플로우를 버전 2.1 브로커로 전개할 수 없습니다.