최신 웹 개발 튜토리얼
 

XML WSDL


  • WSDL은 웹 서비스 기술 언어를 의미합니다
  • WSDL은 웹 서비스를 설명하는 데 사용되는
  • WSDL은 XML로 작성
  • WSDL 2007 6월 (26)에서 W3C 추천입니다

WSDL 문서

WSDL 문서는 웹 서비스를 설명한다. 이들 주요 요소를 사용하여, 서비스의 위치, 서비스의 메소드를 지정

요소 기술
<types> 정의 문 (XML Schema) 웹 서비스에 의해 사용되는 데이터 형식
<message> 각각의 동작에 대한 데이터 요소를 정의
<portType> 수행 메시지가 관여 할 수있는 작업을 설명합니다.
<binding> 각각의 포트 형식에 대한 프로토콜 및 데이터 포맷을 정의

WSDL 문서의 기본 구조는 다음과 같습니다 :

<definitions>

<types>
  data type definitions........
</types>

<message>
  definition of the data being communicated....
</message>

<portType>
  set of operations......
</portType>

<binding>
  protocol and data format specification....
</binding>

</definitions>

WSDL 예

이는 WSDL 문서의 간략화 된 부분이다 :

<message name="getTermRequest">
  <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>

이 예에서 <portType> 요소를 정의 "glossaryTerms" a의 이름과 port , 그리고 "getTerm" 의 이름으로 operation .

"getTerm" 작업은이 input message 라는 "getTermRequest"output message 라는 "getTermResponse" .

<message> 요소는 정의 parts 각각의 메시지와 관련된 데이터 유형을.


<portType> 요소

<portType> 엘리먼트를 정의 a web service 의 operations 을 수행 할 수 있고, messages 포함된다.

요청 - 응답 형태는 일반적인 조작 형이지만, WSDL은 네 종류를 정의

유형 정의
One-way 동작은 메시지를 수신 할 수 있지만, 응답을 반환하지
Request-response 동작은 요청을 수신하고 응답을 리턴
Solicit-response 동작은 요청을 전송하고 응답을 기다린다
Notification 동작은 메시지를 보낼 수 있지만, 응답을 대기하지

WSDL 편도 운영

단방향 동작 예 :

<message name="newTermValues">
  <part name="term" type="xs:string"/>
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="setTerm">
    <input name="newTerm" message="newTermValues"/>
  </operation>
</portType >

위의 예에서 portType에 "glossaryTerms" 라는 단방향 작업 정의 "setTerm" .

"setTerm" 작업은 사용하여 새 용어집 용어 메시지를 입력 할 수 있습니다 "newTermValues" 입력 매개 변수를 사용하여 메시지를 "term""value" . 그러나, 출력은 동작을 위해 정의되지 않습니다.


WSDL 요청 - 응답 조작

요청 - 응답 동작 예 :

<message name="getTermRequest">
  <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>

위의 예에서의 portType "glossaryTerms" 라는 요청 - 응답 조작 정의 "getTerm" .

"getTerm" 작업이라고 입력 메시지가 필요합니다 "getTermRequest" 라는 매개 변수 "term" , 그리고라는 출력 메시지를 반환합니다 "getTermResponse" 이라는 매개 변수 "value" .


WSDL은 SOAP 바인딩

WSDL 바인딩은 웹 서비스에 대한 메시지 포맷 및 프로토콜 세부 사항을 정의한다.

요청 - 응답 동작 예 :

<message name="getTermRequest">
  <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>

<binding type="glossaryTerms" name="b1">
   <soap:binding style="document"
   transport="http://schemas.xmlsoap.org/soap/http" />
   <operation>
     <soap:operation soapAction="http://example.com/getTerm"/>
     <input><soap:body use="literal"/></input>
     <output><soap:body use="literal"/></output>
  </operation>
</binding>

binding 이름과 유형 - 요소는 두 가지 속성이 있습니다.

name 속성은 (you can use any name you want) 바인딩의 이름 및 정의 type 이 케이스에, 바인딩의 포트에 속성 포인트를 "glossaryTerms" 포트입니다.

soap:binding - 스타일과 전송 요소는 두 가지 속성이 있습니다.

style 속성이 될 수 있습니다 "rpc" 또는 "document" . 이 경우 우리는 문서를 사용합니다. transport 특성은 사용하는 SOAP 프로토콜을 정의한다. 이 경우 우리는 HTTP를 사용합니다.

operation 요소는 portType에 노출하는 각각의 동작을 정의한다.

각각의 동작에 해당하는 SOAP 액션을 정의한다. 또한 입력과 출력 인코딩하는 방법을 지정해야합니다. 이 경우 우리가 사용하는 "literal" .