SOAP 메시지의 구조

SOAP 메시지는 XML 문서로 인코딩된다.<Envelope>요소 (선택 사항 포함)<Header>요소 및 필수 요소<Body>사용하십시오. 의<Fault>포함되어 있는 요소<Body>는 오류를 보고하는 데 사용됩니다.

SOAP 엔벨로프
<Envelope>는 모든 SOAP 메시지의 루트 요소이며, 두 개의 하위 요소 (옵션) 를 포함한다.<Header>요소 및 필수 요소<Body>사용하십시오.
SOAP 헤더
<Header>SOAP 엔벨로프의 선택적 하위 요소이며, 메시지 경로를 따라 SOAP 노드가 처리할 응용프로그램 관련 정보를 전달하는 데 사용됩니다. SOAP 헤더을 참조하십시오.
SOAP 본문
<Body>는 메시지의 최종 수신자를 위한 정보를 포함하는 SOAP 엔벨로프의 필수 하위 요소입니다. SOAP 본문을 참조하십시오.
SOAP 결함
<Fault>보고 오류에 사용되는 SOAP 본문의 하위 요소입니다. SOAP 결함을 참조하십시오.

XML 요소<Header><Body>비록 SOAP 스팩이 그들의 구조에 약간의 제약을 부과하지만, 이들을 사용하는 애플리케이션에 의해 정의된다. 다음 다이어그램은 SOAP 메시지의 구조를 보여줍니다.

다이어그램은 SOAP 엔벨로프를 SOAP 헤더와 SOAP 바디에 대한 컨테이너로 보여 준다.

다음 코드는 헤더 블록을 포함하는 SOAP 메시지의 예제이다.<m:reservation><n:passenger>요소) 및 본문 (포함된 요소 포함)<p:itinterary>요소 (예를 들어

<?xml version='1.0' Encoding='UTF-8' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> 
 <env:Header>
  <m:reservation xmlns:m="http://travelcompany.example.org/reservation" 
		env:role="http://www.w3.org/2003/05/soap-envelope/role/next">
   <m:reference>uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d</m:reference>
   <m:dateAndTime>2007-11-29T13:20:00.000-05:00</m:dateAndTime>
  </m:reservation>
  <n:passenger xmlns:n="http://mycompany.example.com/employees" 
		env:role="http://www.w3.org/2003/05/soap-envelope/role/next">
   <n:name>Fred Bloggs</n:name>
  </n:passenger>
 </env:Header>
 <env:Body>
  <p:itinerary xmlns:p="http://travelcompany.example.org/reservation/travel">
   <p:departure>
     <p:departing>New York</p:departing>
     <p:arriving>Los Angeles</p:arriving>
     <p:departureDate>2007-12-14</p:departureDate>
     <p:departureTime>late afternoon</p:departureTime>
     <p:seatPreference>aisle</p:seatPreference>
   </p:departure>
   <p:return>
     <p:departing>Los Angeles</p:departing>
     <p:arriving>New York</p:arriving>
     <p:departureDate>2007-12-20</p:departureDate>
     <p:departureTime>mid-morning</p:departureTime>
     <p:seatPreference></p:seatPreference>
   </p:return>
  </p:itinerary>
 </env:Body>
</env:Envelope>