webservice的wsdl檔案的結構分析
阿新 • • 發佈:2019-02-02
<?xml version='1.0' encoding='UTF-8'?>
<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://ws.web.sunsharing.com/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http"
name="ImplClassService" targetNamespace="http://ws.web.sunsharing.com/">
<!--
types,資料型別定義的容器,它使用某種型別系統(一般地使用XML Schema中的型別系統)。
-->
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://ws.web.sunsharing.com/" elementFormDefault="unqualified"
targetNamespace ="http://ws.web.sunsharing.com/" version="1.0">
<xs:element name="sayHello" type="tns:sayHello" />
<xs:element name="sayHelloResponse" type="tns:sayHelloResponse" />
<xs:complexType name="sayHello">
<xs:sequence>
<xs:element minOccurs="0" name="arg0" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="sayHelloResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
<!-- message:用來定義訊息的結構
part:指定引用types中定義的標籤片段
-->
<wsdl:message name="sayHelloResponse">
<wsdl:part element="tns:sayHelloResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="sayHello">
<wsdl:part element="tns:sayHello" name="parameters">
</wsdl:part>
</wsdl:message>
<!-- portype:用來定義伺服器端的SEI
operation:用來指定SEI中的處理請求的方法
input:制定客戶端應用傳過來的資料,會引用上面定義的message標籤
output:指定伺服器端返回給客戶端應用的資料,會引用上面定義的message標籤
-->
<wsdl:portType name="ServiceSide">
<wsdl:operation name="sayHello">
<wsdl:input message="tns:sayHello" name="sayHello">
</wsdl:input>
<wsdl:output message="tns:sayHelloResponse" name="sayHelloResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
<!-- binding:用於定義SEI的實現類 type:用來應用上面的portype標籤
<soap:binding style="document">繫結的資料是一個document(xml)
operation:用來定義實現的方法
<soap:operation soapAction="" style="document"/>:傳輸的是document(xml)
input:指定客戶端應用傳過來的資料
<soap:body use="literal"/>:文字資料
output:指定伺服器返回給客戶端的資料
<soap:body use="literal"/>:文字資料
-->
<wsdl:binding name="ImplClassServiceSoapBinding" type="tns:ServiceSide">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="sayHello">
<soap:operation soapAction="" style="document" />
<wsdl:input name="sayHello">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="sayHelloResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<!-- service:相當於一個webservice的容器,name屬性用來指定客戶端的容器類(生成客戶端的時候會生成一個類)
port:用來指定一個伺服器處理請求的入口(就是SEI的實現) binding:引用上面的<binding>
address:當前webservice的請求地址
-->
<wsdl:service name="ImplClassService">
<wsdl:port binding="tns:ImplClassServiceSoapBinding" name="ImplClassPort">
<soap:address location="http://192.168.1.125:8888/webservice01" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>