WSDL:web 服务描述语言(Web services description language)
WSDL的文档结构
节点 | 描述 |
|
<PortType> |
|
|
<Binding> |
|
|
<Types> |
|
|
<Message> | Web service使用的消息 |
|
<PortType>节点
WSDL片段:
<Message name=”getRequest”>
<part name=”request” type=”xs:string”/>
</ Message >
< Message name=”getResponse”>
<part name=”response” type=”xs:string”/>
</ Message >
<PortType name=”login”>
<Operation name=”submit”>
<input message=” getRequest”/>
<output message=” getResponse”/>
</ Operation >
</PortType>
PortType的含义是通过”login”端口,进行”submit”操作,次操作会请求一个名为 ”getRequest”类型的输入消息。并且会输出” getResponse”类型的消息。
我们用编程思想来理解上面的WSDL片段:
首先我们定义一个类
Class Login
{
Public string Submit(string request)
{
String response = request;
return response;
}
}
对照:
WSDL | Class |
<PortType name=”login”> | 类名: Login |
<Operation name=”submit”> | 方法: Submit |
<input message=” getRequest”/> | 参数: request |
<part name=”request” type=”xs:string”/> | 参数类型:string |
<output message=” getResponse”/> | 返回值: response |
<part name=”response” type=”xs:string”/> | 返回值类型:string |
操作类型
MEP: 消息交互模式(Message Exchange Pattern), 不过WSDL定义了四种:
|
|
One-way | 发送一个请求,不会有响应 |
Request-response | 发送一个请求,并返回一个响应 |
Solicit-response | 发送一个请求,等待返回一个响应 |
Notification | 发送一个请求,不会等待响应 |
Binding:
<Message name=”getRequest”>
<part name=”request” type=”xs:string”/>
</ Message >
< Message name=”getResponse”>
<part name=”response” type=”xs:string”/>
</ Message >
<PortType name=”login”>
<Operation name=”submit”>
<input message=” getRequest”/>
<output message=” getResponse”/>
</ Operation >
</PortType>
<Binding type=" login " name="bind">
<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 >