각 메시지 정의 파일은 메시지의 논리적 구조 및 전송 중의 메시지 비트스트림의 정확한 화면을 설명하는 물리적 구조를 모두 설명합니다. RAM 도메인을 사용할 경우, 반드시 구문 분석기에게 메시지 비트스트림을 구문 분석 방법을 정확히 알려 주는 물리적 형식 정보를 제공해야 합니다.
메시지를 한 위치에서 다른 위치로 송신되는 데이터의 패킷으로 생각할 수 있습니다. 메시지의 송신자와 수신자는 메시지 구조 및 메시지의 각 필드의 의미에 대해 동일하게 인식합니다. 이는 플랫폼과 프로토콜에 영향받지 않는 논리적 구조입니다.
송신자와 수신자는 또한 메시지의 물리적 표현 및 Wire에서 데이터가 물리적으로 배치되는 방법도 동일하게 인식합니다. 예를 들면, 개인 은행 계정의 차변에 대한 정보를 전달하는 메시지를 정의할 경우 다른 물리적 형식(예를 들면, XML 또는 COBOL 사본과 같은 고정된 구조로)으로 메시지를 표현할 수 있습니다. 두 경우에 의미와 데이터는 동일합니다. 실제 레이아웃만이 변경됩니다.
MRM 도메인을 사용하는 경우, 이름 지정된 물리적 형식을 사용하여 다양한 다른 물리적 표현을 모델화할 수 있습니다.
다음 예에서는 아주 단순한 논리적 메시지가 다양한 물리적 표현을 가질 수 있는 방법을 보여줍니다.
논리 모델은 메시지의 구조 및 순서를 정의합니다. 다음 예에서는 세 개의 필드가 있는데 모두 단순 정수이며, A 다음에 B, 그리고 B 다음에 C 순서로 있습니다.
int A; int B; int C;
<Msg><A>xxxxxxxx</A><B>xxxxxxxx</B><C>xxxxxxxx</C></Msg>여기서 xxxxxxxx는 문자열로 표현되는 정수 값입니다(XML은 문자열만 처리함). 대체 표현은 다음과 같을 수 있습니다.
<Msg A="xxxxxxxx" B="xxxxxxxx" C="xxxxxxxx"/>여기서 정수 값은 XML 요소 대신 XML 속성으로 저장됩니다. 메시지에 있는 각 필드에 대해 정확한 XML 렌더링을 XML 등록 정보로 제공합니다.
{A_tag:xxxxxxxx;B_tag:xxxxxxxx;C_tag:xxxxxxxx}다른 방법은 데이터의 순서에 따라 다음과 같이 종결 디리미터만 지정되도록 할 수 있습니다.
[xxxxxxxx;xxxxxxxx;xxxxxxxx]TDS 등록 정보로 정확한 ID 방식을 제공합니다.
다음은 논리 모델이 변경되는 않는 것을 보여줍니다. 논리 모델은 MRM 도메인이 제공하는 물리적 형식 지원을 사용하여 맨 위에서 모델화하기 위해 선택하는 물리적 표현에 상관없이 항상 일정합니다. MRM 구문 분석기는 사용자가 정의한 Wire 형식 계층에 기초하여 메시지를 입력 물리적 표현에서 몇 개든 출력 표현으로 변환할 수 있습니다.
메시지 세트가 작성되면, 물리적 형식을 작성할 수 있습니다. 메시지 세트 편집기를 사용하여 이 작업을 수행할 수 있습니다. 그런 다음 messageSet.mset 파일을 저장할 때, 모든 새 물리적 형식은 이 메시지 세트에 있는 모든 메시지 정의 파일의 모든 오브젝트에 추가됩니다.
메시지 정의 파일에 있는 오브젝트를 편집할 때, 등록 정보 탭의 등록 정보 계층 분할창에 물리적 형식이 나타납니다. 오브젝트에 대한 물리적 형식을 누르면, 해당 오브젝트의 물리적 형식에 대한 정보를 입력할 수 있는 등록 정보 시트가 제공됩니다.
모든 오브젝트가 모든 물리적 형식으로 등록 정보를 가지고 있지는 않습니다. 예를 들면, 다음 코드와 같습니다.
이는 각 물리적 형식이 서로 다른 성질을 가지고 있기 때문이며 이러한 차이점은 각 물리적 형식에 대한 절에서 자세히 설명되어 있습니다.
제공된 메시지 세트에서 작성할 수 있는 물리적 형식 수에는 제한이 없습니다. 단, 같은 메시지 세트에서 여러 유형의 물리적 형식을 혼합하려는 경우 몇 가지 사항을 적용할 것을 권장합니다.
더 이상 필요하지 않은 경우, 물리적 형식을 삭제할 수 있습니다.