مدارک WSDL

document WSDL تنها یک document XML ساده است.

این شامل مجموعه‌ای از تعاریف برای توصیف یک وب‌سرویس است.

ساختار document WSDL

document WSDL از این عناصر اصلی برای توصیف یک وب‌سرویس استفاده می‌کند:

عناصر تعریف
<portType> عمل‌هایی که وب‌سرویس اجرا می‌کند
<message> پیام‌هایی که وب‌سرویس استفاده می‌کند
<types> نوع داده‌هایی که وب‌سرویس استفاده می‌کند
<binding> پروتکل‌های ارتباطی که وب‌سرویس استفاده می‌کند

ساختار اصلی یک document WSDL مانند این است:

<definitions>
<types>
   تعریف نوع‌ها...
</types>
<message>
   تعریف پیام...
</message>
<portType>
   تعریف پورت...
</portType>
<binding>
   تعریف پیوند...
</binding>
</definitions>

دокумент WSDL می‌تواند شامل عناصر دیگری مانند عناصر extension و یک عنصر service باشد، که تعریف چندین وب‌سرویس را در یک document WSDL واحد ترکیب می‌کند.

برای توضیح کامل دستور زبان، لطفاً به قوانین WSDL این بخش.

پورت WSDL

<portType> عناصر مهم‌ترین عناصر WSDL هستند.

این عناصر می‌توانند یک وب‌سرویس، عمل‌هایی که قابل اجرا هستند و پیام‌های مرتبط را توصیف کنند.

عناصر <portType> را می‌توان مانند یک کتابخانه (یا یک ماژول، یا یک کلاس) در زبان‌های برنامه‌نویسی سنتی مقایسه کرد.

پیام‌های WSDL

<message> عناصر داده‌های یک عمل را تعریف می‌کنند.

هر پیام از یک یا چند بخش تشکیل شده است. می‌توان این بخش‌ها را مانند پارامترهای یک فراخوانی توابع در زبان‌های برنامه‌نویسی سنتی مقایسه کرد.

نوع‌های WSDL

<types> عناصر نوع داده‌هایی که وب‌سرویس استفاده می‌کند را تعریف می‌کنند.

برای حداکثر تعادل پلتفرم، WSDL از دستور زبان XML Schema برای تعریف نوع داده‌ها استفاده می‌کند.

پیوندهای WSDL

<binding> عناصر برای هر پورت شکل و جزئیات پروتکل را تعریف می‌کنند.

مثال 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" دارای یک ورودی به نامپیام ورودیو یک پیام ورودی به نامپیام خروجی.

<message> عنصر می‌تواند هر پیام را تعریف کندبخشو همچنین نوع‌های داده مرتبط با آن.

در مقایسه با برنامه‌نویسی سنتی، glossaryTerms یک کتابخانه است و "getTerm" یک تابع است که ورودی "getTermRequest" و خروجی getTermResponse دارد.