WSDL - Phần tử <portType>
Các <portType> phần tử kết hợp nhiều phần tử thông báo để tạo thành một hoạt động một chiều hoặc khứ hồi hoàn chỉnh.
Ví dụ, một <portType>có thể kết hợp một yêu cầu và một thông báo phản hồi thành một thao tác yêu cầu / phản hồi duy nhất. Điều này thường được sử dụng nhất trong các dịch vụ SOAP. Một portType có thể xác định nhiều hoạt động.
Hãy để chúng tôi lấy một đoạn mã từ chương Ví dụ về WSDL -
<portType name = "Hello_PortType">
<operation name = "sayHello">
<input message = "tns:SayHelloRequest"/>
<output message = "tns:SayHelloResponse"/>
</operation>
</portType>
Phần tử portType xác định một thao tác duy nhất, được gọi là sayHello .
Hoạt động bao gồm một thông báo đầu vào duy nhất SayHelloRequest và một
xuất thông báo SayHelloResponse .
Các mô hình hoạt động
WSDL hỗ trợ bốn mô hình hoạt động cơ bản -
Một chiều
Dịch vụ nhận được một tin nhắn. Do đó, hoạt động có một yếu tố đầu vào duy nhất . Ngữ pháp cho hoạt động một chiều là:
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name = "nmtoken">
<wsdl:input name = "nmtoken"? message = "qname"/>
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>
Yêu cầu-phản hồi
Dịch vụ nhận được tin nhắn và gửi phản hồi. Do đó, hoạt động có một phần tử đầu vào , tiếp theo là một phần tử đầu ra . Để đóng gói lỗi, một phần tử lỗi tùy chọn cũng có thể được chỉ định. Ngữ pháp cho thao tác phản hồi yêu cầu là:
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name = "nmtoken" parameterOrder = "nmtokens">
<wsdl:input name = "nmtoken"? message = "qname"/>
<wsdl:output name = "nmtoken"? message = "qname"/>
<wsdl:fault name = "nmtoken" message = "qname"/>*
</wsdl:operation>
</wsdl:portType>
</wsdl:definitions>
Solicit-hồi đáp
Dịch vụ gửi tin nhắn và nhận phản hồi. Do đó, hoạt động có một phần tử đầu ra , tiếp theo là một phần tử đầu vào . Để đóng gói lỗi, một phần tử lỗi tùy chọn cũng có thể được chỉ định. Ngữ pháp cho thao tác phản hồi gợi ý là:
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name = "nmtoken" parameterOrder = "nmtokens">
<wsdl:output name = "nmtoken"? message = "qname"/>
<wsdl:input name = "nmtoken"? message = "qname"/>
<wsdl:fault name = "nmtoken" message = "qname"/>*
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>
Thông báo
Dịch vụ sẽ gửi một tin nhắn. Do đó, hoạt động có một phần tử đầu ra duy nhất . Sau đây là ngữ pháp cho thao tác thông báo:
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name = "nmtoken">
<wsdl:output name = "nmtoken"? message = "qname"/>
</wsdl:operation>
</wsdl:portType>
</wsdl:definitions>