JavaCompute 노드에서 메시지 트리의 요소에 액세스

읽거나 쓸 목적으로 메시지의 컨텐츠에 액세스할 경우, 구문 분석기가 입력 비트 스트림에서 작성한 트리에서 요소의 구조 및 배열을 사용하십시오. 필요한 요소에 도달할 때까지 트리의 맨 위에서 아래쪽으로 관련 상위 및 하위 관계를 따라가십시오.

메시지 트리는 evaluate 메소드의 인수로 JavaCompute 노드에 전달됩니다. 인수는 MbMessageAssembly 오브젝트입니다. MbMessageAssembly에는 네 가지 메시지 오브젝트가 있습니다.
  • Message
  • Local Environment
  • Global Environment
  • Exception List
Global Environment를 제외하고 이 오브젝트는 읽기 전용입니다. 읽기 전용 오브젝트에 쓰려고 하면 MbReadOnlyException이 전달됩니다.
이 주제에는 메시지 트리의 요소에 액세스하는 것에 관한 다음 정보가 포함되어 있습니다.

요소 트리 순회

다음 표는 요소 트리에 액세스하기 위해 사용할 수 있는 Java 메소드와 트리의 각 지점에 해당되는 ESQL 상관 이름을 보여줍니다.
MbMessageAssembly에서 Java 액세서 ESQL 상관 이름
getMessage().getRootElement() InputRoot
getMessage().getRootElement().getLastChild() InputBody
getLocalEnvironment().getRootElement() InputLocalEnvironment
getGlobalEnvironment().getRootElement() Environment
getExceptionList().getRootElement() InputExceptionList
다음 메소드를 사용하여 MbElement 유형 요소에서 메시지 트리를 순회할 수 있습니다.
getParent()
현재 요소의 상위 요소를 리턴합니다.
getPreviousSibling()
현재 요소의 이전 동위 요소를 리턴합니다.
getNextSibling()
현재 요소의 다음 동위 요소를 리턴합니다.
getFirstChild()
현재 요소의 첫 번째 하위 요소를 리턴합니다.
getLastChild()
현재 요소의 마지막 하위 요소를 리턴합니다.

다음 예는 단순한 XML 메시지와 메시지에서 작성할 논리 트리를 보여줍니다. 이 예에서는 WebSphere MQ를 사용하여 메시지를 송신했습니다. 논리 트리 다이어그램은 트리 주변을 탐색하기 위해 호출할 메소드도 보여줍니다.

<document>
  <chapter title='Introduction'>
    Some text.
  </chapter>
</document>

이 다이어그램은
메시지 트리 주변을 탐색하기 위해 호출할 수 있는 메소드를 보여줍니다. 여기에서
사용되는 트리는 이 주제에 제공된 XML 예를 구문 분석하여 작성한 트리입니다. Root에서부터, getFirstChild()를 호출하는 트리의 부분은
Properties를 탐색합니다. 또한 Root에서, 호출하는 getLastChild()는
XML을 리턴합니다. Properties로부터, 호출하는 getParent()는 Root를 리턴하고
호출하는 getNextSibling()은 MQMD를 리턴합니다. MQMD로부터, 호출하는 getPreviousSibling()은
Properties를 리턴하고, 호출하는 getParent()는 Root를 리턴하며, 호출하는 getNextSibling()은
XML을 리턴합니다. XML에서, 호출하는 getPreviousSibling()은 MQMD를 리턴하고,
호출하는 getParent()는 Root를 리턴하며, 호출하는 getFirstChild()는
document를 리턴하고, 호출하는 getLastChild() 역시 document를 리턴합니다.
문서에서, 호출하는 getParent()는 XML을 리턴하고, 호출하는 getFirstChild()는
chapter를 리턴하며, 호출하는 getLastChild() 역시 chapter를 리턴합니다.
chapter로부터, 호출하는 getParent()는 document를 리턴하고, 호출하는 getFirstChild()는
title을 리턴하며, getLastChild()를 호출하는 chapter는 메시지 데이터 "Some text"를 포함하는
하위 요소를 리턴합니다.

다음 Java 코드는 논리 트리에서 chapter 요소에 액세스합니다.
MbElement root = assembly.getMessage().getRootElement();
MbElement chapter = root.getLastChild().getFirstChild().getFirstChild();

JavaCompute 노드를 사용하여 요소에 대한 정보에 액세스

다음 메소드를 사용하여 참조된 요소에 대한 정보를 리턴하십시오. Java 사용자 정의 노드 API는 다음 메소드에 대한 추가 세부사항을 제공합니다.
getName()
요소 이름을 java.lang.String으로 리턴합니다.
getValue()
요소 값을 리턴합니다.
getType()
다음 유형 중 하나인 일반 유형을 리턴합니다.
  • NAME. 이 유형의 요소는 이름은 가지고 있지만 값은 가지고 있지 않습니다.
  • VALUE. 이 유형의 요소는 값은 가지고 있지만 이름은 가지고 있지 않습니다.
  • NAME/VALUE. 이 유형의 요소는 값과 이름을 둘 다 가지고 있습니다.
getSpecificType()
구문 분석기별 요소 유형을 리턴합니다.
getNamespace()
이 요소의 네임스페이스 URI를 리턴합니다.
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ac30330_