이전 릴리스에서는 메시지 모델에서 복합 유형 내에 단순 유형을 임베드할 수 있었습니다. 이는 XML 태그 간에 발생할 수 있는 익명의 텍스트를 모델화할 수 있도록 합니다. 이러한 단순 유형은 XML 스키마 단순 유형과 구별되게 하기 위해 임베드된 단순 유형이라고 합니다. 이 주제는 이전 릴리스에서 모델화하고 mqsimigratemsgsets 명령을 사용하여 들여온 메시지에 대해 작업하는 경우에만 적용할 수 있습니다.
MRM 메시지를 논리적 트리로 구문 분석할 때, 임베드된 단순 유형은 ESQL에서 이들을 고유하게 정의하는 ID를 가지지 않습니다. 임베드된 단순 유형에 보유된 데이터를 물어보거나 갱신하려는 경우, 메시지에 알려진 다른 오브젝트에 관해 이 유형을 참조해야 합니다.
예를 들면, 텍스트가 Mr. Smith인 임베드된 단순 유형을 갱신하려면 Compute 노드에서 다음 ESQL을 포함시키십시오.
SET OutputRoot.MRM.Person.*[3] = 'Mr.Smith';
이 명령문은 요소 Person의 세 번째 하위 요소를 Mr.Smith로 설정합니다. 이 명령문은 트리에서 익명의 요소를 처리하므로(이름이 없는 임베드된 단순 유형), 트리에서의 위치를 알고 있는 경우에만 값을 설정할 수 있습니다.
다음 MRM XML 메시지를 고려해 보십시오.
<Mess1> <Elem1>abc</Elem1> <Elem2>def<Child1>ghi</Child1></Elem2> </Mess1>
다음 오브젝트를 사용하여 MRM에서 이 XML 메시지를 모델화할 수 있습니다.
유형 등록 정보는 tMess1로 설정됩니다.
작성 등록 정보는 정렬된 세트로 설정됩니다.
복합 유형에는 다음과 같은 오브젝트가 포함됩니다.
유형 등록 정보는 XML 스키마 단순 유형 xsd:string으로 설정됩니다.
유형 등록 정보는 복합 유형 tElem2로 설정됩니다.
작성 등록 정보는 순서로 설정됩니다.
복합 유형에는 다음과 같은 오브젝트가 포함됩니다.
유형 등록 정보는 XML 스키마 단순 유형 xsd:string으로 설정됩니다.
tMess2 내에 임베드되어 있는 임베드된 단순 유형 ComIbmMRM_BaseValueString은 입력 메시지에서 데이터 def를 구문 분석하는 데 사용됩니다. 출력에 임베드된 단순 유형과 연관된 데이터 값을 변경하려면 다음과 같이 ESQL을 코딩하십시오.
SET OutputRoot.MRM.Elem2.*[1] = 'xyz';
그러면 다음 출력 메시지를 생성합니다.
<Mess1> <Elem1>abc</Elem1> <Elem2>xyz<Child1>ghi</Child1></Elem2> </Mess1>
MRM에서 이 메시지를 모델화하지 않으면, 다음 ESQL과 동일한 결과를 얻을 수 있습니다.
SET OutputRoot.XML.Elem2.*[1] = 'xyz';
임베드된 단순 유형에는 요소와 함께 제공된 널(null) 핸들링 기능이 없습니다. 임베드된 단순 유형을 널(null)로 설정하면, 널(null) 단순 유형이 메시지 트리에서 삭제됩니다.
ESQL에서 요소 이름은 일반적으로 MRM 요소를 참조 및 갱신하는 데 사용됩니다. 임베드된 단순 유형이 메시지에 존재하는 경우는 예외입니다. 멀티파트 메시지를 사용 중인 경우, 메시지가 비트스트림의 첫 번째 메시지 오브젝트가 아니면 메시지 이름을 지정하여 임베드된 단순 유형 참조를 추가적으로 규정해야 합니다. MRM 도메인에서 임베드된 메시지에 액세스에서 추가 정보를 제공합니다.