WSDL - Ví dụ

Dưới đây là tệp WSDL được cung cấp để trình diễn một chương trình WSDL đơn giản.

Hãy giả sử dịch vụ cung cấp một chức năng công khai duy nhất, được gọi là sayHello . Hàm này mong đợi một tham số chuỗi đơn và trả về lời chào chuỗi đơn. Ví dụ: nếu bạn truyền tham số world thì hàm dịch vụ sayHello trả về lời chào, "Hello, world!".

Thí dụ

Nội dung của tệp HelloService.wsdl -

<definitions name = "HelloService"
   targetNamespace = "http://www.examples.com/wsdl/HelloService.wsdl"
   xmlns = "http://schemas.xmlsoap.org/wsdl/"
   xmlns:soap = "http://schemas.xmlsoap.org/wsdl/soap/"
   xmlns:tns = "http://www.examples.com/wsdl/HelloService.wsdl"
   xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
 
   <message name = "SayHelloRequest">
      <part name = "firstName" type = "xsd:string"/>
   </message>
	
   <message name = "SayHelloResponse">
      <part name = "greeting" type = "xsd:string"/>
   </message>

   <portType name = "Hello_PortType">
      <operation name = "sayHello">
         <input message = "tns:SayHelloRequest"/>
         <output message = "tns:SayHelloResponse"/>
      </operation>
   </portType>

   <binding name = "Hello_Binding" type = "tns:Hello_PortType">
      <soap:binding style = "rpc"
         transport = "http://schemas.xmlsoap.org/soap/http"/>
      <operation name = "sayHello">
         <soap:operation soapAction = "sayHello"/>
         <input>
            <soap:body
               encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"
               namespace = "urn:examples:helloservice"
               use = "encoded"/>
         </input>
		
         <output>
            <soap:body
               encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"
               namespace = "urn:examples:helloservice"
               use = "encoded"/>
         </output>
      </operation>
   </binding>

   <service name = "Hello_Service">
      <documentation>WSDL File for HelloService</documentation>
      <port binding = "tns:Hello_Binding" name = "Hello_Port">
         <soap:address
            location = "http://www.examples.com/SayHello/" />
      </port>
   </service>
</definitions>

Phân tích ví dụ

  • Definitions - HelloService

  • Type - Sử dụng các kiểu dữ liệu dựng sẵn và chúng được định nghĩa trong XMLSchema.

  • Message -

    • sayHelloRequest - tham số firstName

    • sayHelloresponse - giá trị trả lại lời chào

  • Port Type - hoạt động sayHello bao gồm một yêu cầu và một dịch vụ phản hồi.

  • Binding - Hướng sử dụng giao thức truyền tải SOAP HTTP.

  • Service - Dịch vụ có sẵn tại http://www.examples.com/SayHello/

  • Port - Liên kết ràng buộc với URI http://www.examples.com/SayHello/ nơi dịch vụ đang chạy có thể được truy cập.