메시지 처리 노드가 올바르게 기능하도록 하기 위해 이 노드를 작성하는 지침을 제공합니다. 메시지 처리 노드를 사용하여 메시지를 탐색하는 방법을 설명합니다.
다른 요소와의 연결이 있는 구문 요소
구문 요소 트리
요소 A는 트리의 루트 요소입니다. 이 요소는 루트이므로 상위 요소가 없습니다. 첫 번째 하위 요소는 요소 B입니다. A에 다른 하위 요소가 없으므로, 요소 B는 A의 마지막 하위 요소이기도 합니다.
요소 B에는 세 개의 하위 요소가 있습니다(요소 C, D 및 E). 요소 C는 B의 첫 번재 하위 요소입니다. 요소 E는 B의 마지막 하위 요소입니다.
요소 C에는 두 개의 동위 요소(요소 D 및 E)가 있습니다. 요소 C의 다음 동위 요소는 요소 D입니다. 요소 D의 다음 동위 요소는 요소 E입니다. 요소 E의 이전 동위 요소는 요소 D입니다. 요소 D의 이전 동위 요소는 요소 C입니다.
일반 메시지 구문 요소의 첫 번째 세대
첫 번째 세대인 이들 요소는 종종 "폴더"라고도 하며, 여기서 메시지 헤더 및 메시지 컨텐츠 데이터를 나타내는 구문 요소가 저장됩니다. 이 예에서 루트의 첫 번째 하위 요소는 등록 정보 폴더입니다. 등록 정보의 다음 동위 요소는 수신되는 WebSphere MQ 메시지의 MQMD용 폴더입니다. 다음 동위 요소는 MQRFH2 헤더용 폴더입니다. 마지막으로, 메시지 컨텐츠(이 예에서는 XML 메시지)를 나타내는 폴더가 있습니다.
위의 그림에는 MQMD 및 MQRFH2 헤더가 포함됩니다. MQ메시지 처리 노드에서 수신하는 모든 메시지에는 MQMD 헤더가 포함되며, 포함 가능한 다른 헤더도 많습니다.
<Business>
<Product type='messaging'></Product>
<Company>
<Title>IBM</Title>
<Location>Hursley</Location>
<Department>WebSphere MQ</Department>
</Company>
</Business>
노드 유틸리티 기능 및 메소드(또는 유사한 구문 분석기 유틸리티 기능)를 사용하여 메시지를 탐색할 수 있습니다. 위에 나와 있는 XML 메시지를 예로 들면, 먼저 cniRootElement 기능과 노드가 이 기능에 대한 입력으로 수신하는 메시지를 호출해야 합니다. Java에서는 수신되는 MbMessage에 대해 getRootElement를 호출해야 합니다. 이것은 요소의 루트를 나타내는 MbElement를 리턴합니다. 사용자 정의 노드가 루트 요소를 수정해서는 안 됩니다.
위의 그림에서는 루트 요소의 최종 하위 요소가 XML 구문 분석 트리를 포함하는 폴더임을 보여줍니다. C 노드에서 cniLastChild(이 기능에 대한 입력으로 이전 호출의 출력과 함께)를 호출하거나 Java 노드에서 루트 요소에 대한 getLastChild 메소드를 호출하여 이 폴더로 탐색할 수 있습니다.
메시지의 맨 위 레벨에는 하나의 요소(<Business>)만 있으므로, cniFirstChild(C) 또는 getFirstChild(Java)를 호출하면 트리의 이 지점으로 이동합니다. cniElementType 또는 getElementType을 사용하여 해당 유형(이름)을 가져오고, 그 다음에 cniElementName 또는 getName을 사용하여 이름 자체(Business)를 리턴할 수 있습니다.
<Business>에는 두 개의 하위 요소 <Product> 및 <Company>가 있으므로, cniFirstChild 또는 getFirstChild와 그 다음에 cniNextSibling 또는 getNextSibling을 사용하여 이들을 차례로 탐색할 수 있습니다.
<Product>에는 하위 요소인 속성(type='messaging')이 있습니다. cniFirstChild 또는 getFirstChild를 다시 사용하여 이 요소로 탐색하고, cniElementType 또는 getType을 사용하여 해당 유형(이름-값)을 리턴하십시오. 앞에서와 같이 cniElementName 또는 getName을 사용하여 이름을 가져오십시오. 값을 가져오려면, cniElementValueType을 호출하여 유형을 리턴한 다음 cniElementValue 그룹에서 적절한 기능을 호출하십시오. 이 예에서는 cniElementCharacterValue가 됩니다. Java에서는 getValue 메소드를 사용하십시오. 이 메소드는 요소 값을 나타내는 Java 오브젝트를 리턴합니다.
<Company>에는 세 개의 하위 요소가 있으며, 각 하위 요소에는 값 요소(IBM, Hursley 및 WebSphere MQ)인 하나의 하위 요소가 있습니다. 이미 설명된 기능을 사용하여 이러한 요소로 탐색하고 해당 값에 액세스할 수 있습니다.
요소 트리(또는 일부)를 복사하는 다른 기능도 제공됩니다. 출력 메시지를 작성하기 위해, 요소를 추가 또는 제거하거나 요소의 이름 및 값을 변경하여 사본을 수정할 수 있습니다.