SOAP 메시지 형식이 WSDL 정의에 설명되어 있어 런타임 시에 메시지를 구문 분석하는 데 사용하는 메시지 모델과 WSDL 사이를 브로커가 맵핑할 수 있어야 합니다. 이 주제의 목적은 WSDL과 메시지 모델 사이의 주요 관계를 강조하는 데 있습니다.
WSDL 정의의 물리적 부분이 브로커 모델에 표시되지 않으므로 WSDL 조작, 메시지 및 부분 정의를 고려해야 합니다. 하위 레벨 빌딩 블록을 시작으로 WSDL 정의가 설명됩니다.
WSDL 생성기는 메시지 범주를 사용하여 필수 WSDL 조작을 정의합니다. 하지만 메시지 범주는 브로커 메시지 모델에서 런타임 의미가 없으며 WSDL 들여오기 시에 작성되지 않습니다.
메시지 범주와 브로커 메시지 모델 간 관계는 WSDL 양식에 따라 다릅니다.
<soap:Body>의 단일 하위가 rpc(기능) 호출을 표시하며 rpc 랩퍼 또는 액세서로 참조됩니다. rpc 액세서 이름은 WSDL 조작 이름에서 제공하며 네임스페이스는 rpc 양식에만 사용하는 <soap:body> 정의의 네임스페이스 속성에서 제공합니다. rpc 액세서의 하위가 rpc 호출의 매개변수를 표시합니다. 하위 요소의 이름을 해당 WSDL 메시지 정의의 부분 이름에서 제공합니다. 이는 rpc 액세서에 로컬이며 네임스페이스가 없습니다.
SOAP 헤더 및 결함을 rpc 양식 메시지와 결합하여 사용 가능하지만 이는 rpc 양식 매개변수에 맵핑되지 않으며 WS-I 기본 프로파일에서 문서 양식을 사용하는 데 필요합니다.
교환된 메시지가 XML 스키마로 완전하게 설명됩니다(리터럴 인코딩만 허용). SOAP 메시지 부분이 조작 및 부분 이름과 같이 WSDL 오브젝트로부터 도출되지 않습니다.
WS-I 기본 프로파일은 문서 양식 메시지에 본문 부분이 하나만 있도록 지정합니다. SOAP-ENV:Header 요소에는 여러 하위 요소가 있을 수 있습니다(헤더 블록). 결함 세부사항 메시지가 단일 WSDL 메시지 부분으로 정의됩니다.
각각의 경우 요소 스키마가 WSDL 메시지 부분 정의에 참조된 요소로 정의되며 요소를 정의하는 <스키마>의 대상 네임스페이스에 속합니다.
결과 모델을 통해 사용자는 메시지 유형이 인벨로프(Envelope)가 되는 MRM XML 구문 분석기를 사용하여 들어오는 SOAP 메시지를 구문 분석할 수 있습니다. SOAP 인벨로프의 메시지 모델은 다양한 비즈니스 페이로드(payload)가 표시되는 여러 첨부 지점과 구성 헤더 및 본문 섹션이 있는 외부 SOAP 랩퍼를 정의합니다. 이 첨부 지점이 작성 '메시지'로 정의되며 WSDL 임포터 또는 생성기에 의해 작성된 브로커 메시지가 이 지점에 표시될 수 있습니다.
표에는 첨부 지점과 각 지점에서 가능한 첨부가 표시되어 있습니다.
WSDL 양식 | ||
---|---|---|
첨부 지점 | rpc | 문서 |
Envelope.Body | 단일 조작 액세서 | 단일 하위가 있어야 함 |
Envelope.Header | 복제를 포함한 다중 하위가 있을 수 있음 | 복제를 포함한 다중 하위가 있을 수 있음 |
Envelope.Body.Fault.detail | 단일 하위가 있어야 함 | 단일 하위가 있어야 함 |