آموزش WSDL > تشریح اسناد WSDL
تشریح اسناد WSDL :
همانطور که در بخش قبل توضیح دادیم ، اسناد WSDL به زبان XML نوشته شده و به فرمت یک فایل XML نیز ذخیره می شوند
.
این اسناد شامل بخش های مجزا و معینی هستند که هر کدام برای توضیح بخشی از وب سرویس
به کار می رود :
ساختار کلی یک سند WSDL :
یک سند WSDL ، وب سرویس را به وسیله المنت های اصلی زیر تعریف می کند . شکل کلی یک
سند WSDL در جدول دوم نشان داده شده است :
شرح
|
نام بخش
|
این بخش ، تعیین کننده انواع داده ای است که وب سرویس از آنها استفاده خواهد
کرد . برای مثال String .
|
<types>
|
این بخش ، اطلاعات مربوط به یک تابع یا پارامترهای آن را درون خود تعریف می کند .
|
<message>
|
این بخش از سند WSDL ، معمولا رویدادها ، توابع و کلاس هایی که متعلق به وب سرویس است
را نگهداری می کند .
|
<portType>
|
این بخش نیز ، فرمت داده ای یا پروتکلی که هر portType برای ارسال اطلاعات خود استفاده
می کند را تعیین می کند .
|
<binding>
|
ساختار کلی یک سند WSDL :
ساختار کلی
یک سند
WSDL
|
<definitions>
<types>
... لیست انواع داده های مورد استفاده
وب سرویس
</types>
<message>
... پارامترها و داده های مربوط به توابع
و رویدادهای وب سرویس
</message>
<portType>
... رویدادها
و توابع مربوط به وب سرویس
</portType>
<binding>
... portType لیست پروتکل یا فرمت داده
ای متعلق به هر
</binding>
</definitions>
|
هر سند WSDL ، می تواند شامل چندین بخش دیگر نیز باشد .
تشریح هر یک از بخش های WSDL به صورت کاملتر :
بخش <types> :
این بخش از سند ، انواع داده ای که سند WSDL می خواهد از آنها استفاده نماید را تعیین
می کند ، برای مثال String .
برای سازگاری بهتر با انواع پلتفرم ها ، WSDL از XML Schema برای تعیین انواع داده
ای استفاده می کند .
بخش <Message> :
این بخش از سند ، اطلاعات و پارامترهای مربوط به هر تابع یا رویداد وب سرویس
، را تعیین
می کند .
هر message می تواند شامل یک یا چندین بخش باشد . اگر بخواهیم این بخش را با کدنویسی
سنتی مقایسه نماییم ، همانند پارامترها و اطلاعاتی است که به توابع ارسال می شوند .
بخش <Ports> :
بخش Ports در یک سند WSDL ، مهمترین بخش آن به حساب می آید .
این بخش به طور کلی وب سرویس را تشریح کرده ، توابع و رویدادهای موجود در آن را تعیین
می کند . همچنین شامل اطلاعات ارسالی نیز می شود . اگر بخواهیم بخش Ports را با کدنویسی
معمولی مقایسه نماییم ، همانند لیست توابع ، کلاس ها ، پارامترها و ... می باشد .
بخش <Biding> :
این بخش از سند ، نوع فرمت داده ای و پروتکلی که هر Port برای ارسال اطلاعات خود
از آن استفاده
می کند ، را تعیین می نماید . برای مثال ، یک Port از پروتکل SOAP استفاده می کند .
مثال عملی با تشریح :
مثال : در مثال زیر ، یک کد نمونه سند WSDL را به شما نمایش داده
ایم . سپس به صورت کاملتر به تشریح بخش های مختلف آن پرداخته ایم :
مثال عملی
یک سند
WSDL
|
<definitions>
<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>
</definitions>
|
در مثال فوق المنت <portType> ، المنت "glossaryTerms" را به عنوان یک
Port یا پورت و "getTerm" را به عنوان یک Opretaion یا تابع تعیین می
کند .
المنت "getTerm" یک پیام دریافتنی یا input message به نام "getTermRequest"
و یک پیام خروجی output message به نام "getTermResponse" دارد .
دو المنت <message> ، به ترتیب دو مقدار و نوع داده ای را برای المنت
های getTermRequest و getTermResponse را تعیین کرده اند .
اگر بخواهیم کد فوق را با روند برنامه نویسی معمولی مقایسه نماییم ، glossaryTerms
یک کتابخانه رویداد ( تابع ) بوده و getTerm یک تابع می باشد ، که پیام getTermRequest
را به عنوان پارامتر ورودی و پیام getTermResponse را به عنوان پارامتر خروجی دارد
.