WebService核心之WSDL深刻詳解html
根據上一篇文章開發的Web Service實例生成的WSDL文檔以下:java
![](http://static.javashuo.com/static/loading.gif)
XML裏兩個屬性介紹:spa
targetNamespace 至關於java語言裏的package.net
xmlns 至關於java語言裏的importcode
截圖詳解:xml
![](http://static.javashuo.com/static/loading.gif)
WSDL文檔元素解釋:htm
一、operation:表示一個WS操做,表明有多少個接口能夠跟客戶端交流。blog
sayHi表示調用的接口,sayHiResponse表示調用返回的結果,文檔中的例子:接口
- <wsdl:operation name="sayHi">
- <soap:operation soapAction="" style="document" />
- - <wsdl:input name="sayHi">
- <soap:body use="literal" />
- </wsdl:input>
- - <wsdl:output name="sayHiResponse">
- <soap:body use="literal" />
- </wsdl:output>
- </wsdl:operation>
二、input:表示調用這個方法須要傳入的參數。ip
二、output:表示調用這個方法返回的結果。
三、types:使用XML模式語言聲明在WSDL文檔中的其餘位置使用的複雜數據類型與元素
四、import:相似於XML模式文檔中的import元素,用於從其餘WSDL文檔中導入WSDL定義
五、portType:和operation元素描述了Web服務的接口並定義了他的方法。portType元素和operation元素相似於java接口和接口中定義的方法聲明。operation元素使用一個或者多個message類型來定義他的輸入和輸出的有效負載;
六、Binding:特定端口類型的具體協議和數據格式規範的綁定。
七、Service:相關服務訪問點的集合。
八、Port:定義爲協議/數據格式綁定與具體Web訪問地址組合的單個服務訪問點。
service元素包含一個或者多個port元素,其中每一個port元素表示一個不一樣的Web服務。port元素將URL賦給一個特定的binding,甚至可使兩個或者多個port元素將不一樣的URL賦值給相同的binding;文檔中的例子:
- <wsdl:service name="HelloWorldWs">
- - <wsdl:port binding="tns:HelloWorldWsSoapBinding" name="HellowWorldsPort">
- <soap:address location="http://192.168.1.7/vashon" />
- </wsdl:port>
- </wsdl:service>
總結:一次Web Service的調用,其實並非方法的調用,而是發生SOAP消息(即xml文檔片斷)。