آموزش SOAP > المنت Header در SOAP

المنت Header در SOAP :

همانطور که در بخش های قبل توضیح دادیم ، المنت Header در یک پیام SOAP ، حاوی اطلاعاتی کلی و پایه راجع به پیام است .
استفاده از المنت Header اختیاری بوده و می تواند شامل اطلاعات کاربری ، اهراز هویت و ... باشد .
اگر المنت Header در یک پیام SOAP وجود داشته باشد ، باید حتما اولین عنصر فرزند المنت Envelope بوده و تمام عناصر فرزند آن به صورت صحیح و با اشاره به Namespace مرتبط ، تعیین شوند .
به کد زیر دفت نمایید . در این کد یک المنت کامل Header را برای یک پیام SOAP تعریف کرده ایم .
این المنت دارای 3 خاصیت یا پارامتر به نام " mustUnderstand  " ، " Trans" با مقدار 1 و یک مقدار 234 است .
این خواص مشخص می کند که پیام SOAP چگونه باید توسط دریافت کننده آن ، پردازش شود .
در بخش های بعدی به تشریح هر یک از این خواص می پردازیم :

تعریف المنت
Header
SOAP در پیام
<?xml version="1.0" ?>
<soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding">

<soap:header>
    <m:trans xmlns:m="http://www.w3schools.com/transaction/"
      soap:mustunderstand="1"> 234
    </m:trans>
</soap:header>
...
...
</soap:envelope>

خاصیت mustunderstand المنت Header :

خاصیت mustunderstand ، تعیین می کند که آیا اطلاعات المنت Header باید توسط پردازنده پیام SOAP ، پردازش شوند یا خیر .
اگر مقدار 1 برای آن تعیین شود ، پذیرنده پیام بایستی المنت Header را خوانده و آن را پردازش کنند . اگر پذیرنده نتواند اطلاعات Header را پردازش کند ، عملیات اجرای پیام SOAP با error مواجه خواهد شد .
اگر هم مقدار 0 برای آن تعیین شود ، آن بخش از المنت خوانده نمی شود .
شکل کلی استفاده از این خاصیت به صورت زیر است :

Syntax soap:mustUnderstand = " 0 | 1 "

خاصیت actor المنت Header :

پیام SOAP در طی مسیر رسیدن از فرستنده به مقصد ، ممکن است در سرورها و سیستم های مختلفی عبور کرده و پردازش شود .
حال ممکن است بخواهیم اطلاعات بخشی از المنت Header فقط توسط یک یا دو پایانه مورد نظرمان خوانده شده ، نه تمام پایانه هایی که از آنها عبور می کند .
از خاصیت actor در یک بخش از المنت Header ، برای تعیین دقیق آدرس پایانه ای که می خواهیم ، فقط وی ، آن بخش را پردازش کند ، استفاده می شود .
شکل کلی استفاده از این خاصیت به صورت زیر است :

Syntax soap:actor = " URI "

نکته : پارامتر URI آدرس پایانه را تعیین می کند ، که می خواهیم ، آن بخش از المنت Header را پردازش نماید .
مثال : در مثال زیر با استفاده از خاصیت actor تعیین کرده ایم ، که المنت Header توسط یک آدرس مشخص فقط پردازش شود :

تعریف خاصیت
actor
SOAP در پیام
<?xml version="1.0" ?>
<soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding">

<soap:header>
    <m:trans xmlns:m="http://www.w3schools.com/transaction/"
      soap:actor="http://www.w3schools.com/appml/"> 234
    </m:trans>
</soap:header>
...
...
</soap:envelope>

خاصیت encodingstyle :

خاصیت encodingstyle ، برای تعیین انواع داده ای که در پیام SOAP به کار می رود ، استفاده می شود .
به کار بردن این خاصیت اختیاری بوده و مقدار پیش فرض خاصی ندارد . شکل کلی استفاده از این خاصیت به صورت زیر است :

Syntax soap:encodingStyle = " URI "

پارامتر URI به آدرس Namespace ای اشاره می کند ، که تعیین کننده انواع داده ای برای پیام SOAP است . در مثال زیر نحوه به کار بردن این خاصیت را نمایش داده و آدرس رایج و متداول برای آن نیز ذکر شده است :

تعریف خاصیت
encodingstyle
SOAP در پیام
<?xml version="1.0" ?>
    <soap:envelope xmlns:soap=" http://www.w3.org/2001/12/soap-envelope "
       soap:encodingstyle=" http://www.w3.org/2001/12/soap-encoding " >
           ... SOAP   محتویات پیام
  </soap:envelope>