Cấu trúc của một tài liệu WSDL:

Một phần của tài liệu LUẬN VĂN:HỆ THỐNG QUẢN LÝ ĐĂNG KÝ THUẾ SỬ DỤNG WEB SERVICE potx (Trang 26 - 31)

WSDL thường được sử dụng kết hợp với XML schema và SOAP để cung cấp dịch vụ web qua Internet. Một client khi kết nối tới dịch vụ Web có thể đọc tài liệu WSDL để xác định những chức năng sẵn có trên server. Sau đó, client có thể sử dụng SOAP để lấy ra chức năng chính xác có trong WSDL. Một tài liệu WSDL được định nghĩa trong dịch vụ mạng bằng các thẻ sau:

Types – mô tả các kiểu dữ liệu được trao đổi giữa client và server.

<definitions .... >

<types>

<xsd:schema .... />*

</types> </definitions>

Trong đó, thẻ definitions chỉ rõ tên của tài liệu qua thuộc tính name, thuộc tính namespaces để phân biệt các thẻ và cho phép tài liệu wsdl có thể tham chiếu tới các đặc tả bên ngoài (WSDL, SOAP, XML Schema), thuộc tính targetNamespace là một quy tắc XML Schema cho phép tài liệu WSDL tham khảo tới chính nó.

25 <definitions name="StockQuote" targetNamespace="http://example.com/stockquote.wsdl" xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> Ví dụ: về thẻ Types: <types> <xsd:schema targetNamespace="http://mspress.microsoft.com/corexml/"> <xsd:element name="SayHello"> <xsd:complexType> <xsd:sequence>

<xsd:element name="Name" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="SayHelloResponse"> <xsd:complexType> <xsd:sequence>

<xsd:element name="SayHelloResult" type="xsd:string"/> </xsd:sequence>

</xsd:complexType>

</xsd:element> </xsd:schema> </types>

26

Message: mô tả thông điệp được gửi giữa client và server. Nhiều thao tác có thể tham chiếu tới cùng một thông điệp. Thao tác và các thông điệp được mô tả riêng rẽ tạo nên sự linh hoạt và đơn giản hóa việc tái sử dụng lại.

<definitions .... >

<message name="nmtoken"> *

<part name="nmtoken" element="qname"? type="qname"?/> * </message>

</definitions>

Ví dụ: về thẻ Message với hai dạng thông điệp yêu cầu và trả lời.

<message name="SayHelloSoapIn">

<part name="parameters" element="tns:SayHello"/> </message>

<message name="SayHelloSoapOut">

<part name="parameters" element="tns:SayHelloResponse"/>

</message>

Operation: mô tả một hoạt động của dịch vụ.

Port Type: mô tả những hoạt động hỗ trợ bởi một hoặc nhiều thiết bị đầu cuối hay những hoạt động mà dịch vụ web cung cấp và những thông điệp liên quan. WSDL định nghĩa bốn kiểu thao tác mà một cổng có thể hỗ trợ. Kiểu one-way: cổng nhận một thông điệp, đó là thống điệp nhập. Kiểu request-response: cổng nhận một thông điệp, đó là thống điệp phản hồi. Kiểu solicit-response: cổng gửi một thông điệp và nhận về một thông điệp. Kiểu notification: cổng gửi một thông điệp, đó là thông điệp xuất.

< definitions .... >

< portType name="nmtoken"> < operation name="nmtoken" .... /> </ portType>

</ definitions>

Mỗi kiểu thao tác có cú pháp biến đổi tùy theo: thứ tự của các thông điệp nhập, thông điệp xuất và thông điệp lỗi.

27

<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> Ví dụ: Thẻ Port Type: <portType name="HelloServiceSoapPortType"> <operation name="SayHello"> <input message="tns:SayHelloSoapIn"/> <output message="tns:SayHelloSoapOut"/> </operation> </portType>

Binding: mô tả cách thức các dịch vụ web kết hợp với nhau. Một kết hợp gồm các nội dung: những giao thức mở rộng cho những giao tác và những message bao gồm thông tin URN và mã hóa cho SOAP; mỗi một kết hợp tham chiếu đến một loại cổng; một kiểu cổng (portType) có thể được sử dụng trong nhiều mối kết hợp. Tất cả các thao tác định nghĩa bên trong kiểu cổng phải nằm trong phạm vi mối kết hợp.

28

Ví dụ: Thẻ blinding

<binding name="HelloServiceSoap“ type="tns:HelloServiceSoapPort"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/> <operation name="SayHello"> <soap:operation soapAction="http://mspress.microsoft.com/ orexml/SayHello"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding>

Port: một cổng đầu cuối, định nghĩa như một tập hợp của binding và một địa chỉ mạng

<definitions .... >

<wsdl: service .... >

< port name="nmtoken" binding="qname"> <port>

</service>

</definitions>

Service: thực hiện những gì đã được định nghĩa trong tập tin giao diện và cách gọi web services theo thủ tục và phương thức nào:

29 <definitions....> <service name="nmtoken"> < port .... /> </ service> </ definitions> Ví dụ: Thẻ Service: <service name="HelloService">

<port name="HelloServiceSoap" binding="tns:HelloServiceSoap"> <soap:address location="http://localhost/HelloService.asmx"/>

</port> </service>

Một phần của tài liệu LUẬN VĂN:HỆ THỐNG QUẢN LÝ ĐĂNG KÝ THUẾ SỬ DỤNG WEB SERVICE potx (Trang 26 - 31)

Tải bản đầy đủ (PDF)

(58 trang)