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