آموزش 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 است . در مثال زیر نحوه به کار بردن این خاصیت را نمایش داده و آدرس رایج
و متداول برای آن نیز ذکر شده است :