XML WSDL
- WSDL تعني لغة وصف خدمات الويب
- يستخدم WSDL لوصف خدمات الويب
- تمت كتابة WSDL في XML
- WSDL هو توصية W3C من 26. يونيو 2007
وثائق WSDL
تصف وثيقة WSDL خدمة ويب. تحدد موقع الخدمة وطرق الخدمة باستخدام هذه العناصر الرئيسية:
Element | Description |
---|---|
<types> | Defines the (XML Schema) data types used by the web service |
<message> | Defines the data elements for each operation |
<portType> | Describes the operations that can be performed and the messages involved. |
<binding> | Defines the protocol and data format for each port type |
يبدو الهيكل الرئيسي لوثيقة WSDL كما يلي:
<definitions>
<types>
data type definitions........
</types>
<message>
definition of the data being communicated....
</message>
<portType>
set of operations......
</portType>
<binding>
protocol and data format specification....
</binding>
</definitions>
مثال WSDL
هذا جزء مبسط من مستند WSDL:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
في هذا المثال ، يعرّف عنصر <portType> "glossaryTerms" كاسم منفذ ، و "getTerm" كاسم عملية .
تحتوي عملية "getTerm" على رسالة إدخال تسمى "getTermRequest" ورسالة إخراج تسمى "getTermResponse".
تحدد عناصر < الرسالة> أجزاء كل رسالة وأنواع البيانات المرتبطة بها.
عنصر <portType>
يحدد العنصر <portType> خدمة ويب والعمليات التي يمكن تنفيذها والرسائل المتضمنة.
نوع الطلب والاستجابة هو أكثر أنواع العمليات شيوعًا ، لكن WSDL يحدد أربعة أنواع:
Type | Definition |
---|---|
One-way | The operation can receive a message but will not return a response |
Request-response | The operation can receive a request and will return a response |
Solicit-response | The operation can send a request and will wait for a response |
Notification | The operation can send a message but will not wait for a response |
عملية WSDL أحادية الاتجاه
مثال على عملية أحادية الاتجاه:
<message name="newTermValues">
<part name="term" type="xs:string"/>
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="setTerm">
<input name="newTerm" message="newTermValues"/>
</operation>
</portType >
في المثال أعلاه ، يعرف portType "glossaryTerms" عملية أحادية الاتجاه تسمى "setTerm".
تسمح عملية "setTerm" بإدخال رسائل مصطلحات المسرد الجديدة باستخدام رسالة "newTermValues" مع معلمات الإدخال "term" و "value". ومع ذلك ، لم يتم تحديد مخرجات للعملية.
عملية استجابة طلب WSDL
مثال على عملية الطلب والاستجابة:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
في المثال أعلاه ، يعرّف portType "glossaryTerms" عملية طلب-استجابة تسمى "getTerm".
تتطلب عملية "getTerm" رسالة إدخال تسمى "getTermRequest" مع معلمة تسمى "term" ، وستقوم بإرجاع رسالة إخراج تسمى "getTermResponse" بمعامل يسمى "القيمة".
WSDL ملزم بالـ SOAP
تحدد روابط WSDL تنسيق الرسالة وتفاصيل البروتوكول لخدمة الويب.
مثال على عملية الطلب والاستجابة:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
<binding type="glossaryTerms" name="b1">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation>
<soap:operation
soapAction="http://example.com/getTerm"/>
<input><soap:body use="literal"/></input>
<output><soap:body use="literal"/></output>
</operation>
</binding>
عنصر الربط له سمتان - الاسم والنوع.
تحدد سمة الاسم (يمكنك استخدام أي اسم تريده) اسم الربط ، وتشير سمة النوع إلى منفذ الربط ، وفي هذه الحالة منفذ "glossaryTerms".
الصابون: عنصر الربط له سمتان - الأسلوب والنقل.
يمكن أن تكون سمة النمط "rpc" أو "document". في هذه الحالة نستخدم الوثيقة. تحدد سمة النقل بروتوكول SOAP المراد استخدامه. في هذه الحالة نستخدم HTTP.
يحدد عنصر العملية كل عملية يعرضها portType.
لكل عملية يجب تحديد إجراء SOAP المقابل. يجب عليك أيضًا تحديد كيفية ترميز المدخلات والمخرجات. في هذه الحالة نستخدم كلمة "حرفي".