- 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" .