XSLT چيست ؟ ( بخش سوم )
اين مطلب از طريق سايت شرکت سخاروش در اختيار شما گذاشته شده است .

XSLT  چيست ؟ ( بخش سوم )

XSLT  چيست ؟ ( بخش سوم )

در بخش اول اين مقاله، مفاهيم اوليه XSLT و ضرورت های تبديل نوع يک سند XML به نوع ديگر، اشاره و از اين رهگذر جايگاه XSLT  تبين گرديد . در بخش دوم ، به بررسی جايگاه تکنولوژی XSLT در بين خانواده بزرگ تکنولوژی های مرتبط با XML پرداخته  گرديد . در آخرين بخش،  به بررسی روند شکل گيری XSLT و جايگاه آن بعنوان يک زبان برنامه نويسی اشاره می گردد .
روند شکل گيری
XSLT
XSLT ، نظير ساير اعضاء خانواده بزرگ استاندارهای XML، توسط کنسرسيوم وب پياده سازی شده است. جزئيات مربوط به شکل گيری استاندارد فوق، در آدرس http://www.w3.org/style/History  قابل استفاده است. پيشنهاد اوليه ، برای استاندارد فوق در تاريخ بيست ويکم اگوست سال 1997 ارائه گرديد  ( http://www.w3.org/TR/NOTE-XSL.html ) . برای ارائه استاندارد فوق، از وجود يازده متخصص استفاده گرديد .   ( پنج نفر از شرکت ماکروسافت ، سه نفر از شرکت Inso ،  يک نفر از شرکت ArborText ، يک نفر از دانشگاه ادينبورگ و James Clark ، که برای خود کار می کرد) .
XSL ، يک زبان Stylesheet است که توسط کميته وب طراحی شده است . قابليت های استاندارد فوق ، بمراتب بيشتر از  CSS است ( مثلا" قابليت ذخيره سازی المان ها ) . همانگونه که قبلا" اشاره گرديد،  CSS بمنظور نمايش سندهای XML با ساختار ساده مناسب می باشد. XSL  ، دارای قابليت های بمراتب بيشتری در رابطه با فرمت مورد نياز برای قالب دهی اطلاعات ساختيافته ، (نظير يک ساختمان داده XML )  می باشد . پياده کنندگان استاندارد XSL ، در زمان طراحی تکنولوژی فوق ، سه محور اساسی را مورد توجه قراردادند :

اهداف طراحی XSL بشرح زير است :

زبان ارائه شده  در اولين پيشنهاد ،  دارای اغلب مفاهيم کليدی XSLT است ، که در نهايت ارائه گرديد . بمنظور طراحی گرامر زبان فوق از رويکرد مبتنی بر تمپليت استفاده گرديد . بدين ترتيب امکان برخورد با  گره ها ی موجود در سند مبداء و تطبيق آنها با يک الگوی تعريف شده ، فراهم می گردد . عدم وجود اثرات جانبی  و امکان تفسير و برخورد با سندهای با حجم بالا ، از ديگر مواردی است که در زمان طراحی XSL به آنها توجه جدی گرديد . برآيند  تمام تلاش های فوق، عرضه اولين نسخه پيشنهادی XSLT در سال 1998 بود . زبان پيشنهادی در سال   1999 ،بصورت حرفه ای مطرح و مورد استفاده  قرار گرفت .
XSLT بعنوان يک زبان
XSLT ، دارای چه ويژگی منحصربفردی است که آن را بعنوان يک زبان برنامه نويسی از ساير زبان ها متمايز می نمايد ؟ در اين بخش به سه مورد اساسی اشاره خواهد گرديد : استفاده از گرامر مبتنی بر XML  ، عدم وجود تاثيرات جانبی و  پردازش مبتنی بر  مجموعه ای از قوانين
استفاده از گرامر مبتنی بر
XML
همانگونه که قبلا" اشاره گرديد ، استفاده از گرامر
SGML برای Stylesheet از سال 1994 مطرح شده بود . ايده استفاده از SGML در اين زمينه ،  دارای مشکلات خاص خود است . بمنظور عرضه stylesheet در XSLT ، از گرامر مبتنی بر XML استفاده می شود . رويکرد فوق دارای مزايای زير است :

اثرات جانبی
يکی از اهداف اوليه  در رابطه با طراحی
XSLT ، عدم بروز اثرات جانبی در زمان استفاده از آن است . يک تابع و يا برنامه جانبی در صورتيکه باعث ايجاد تغييرات در محيط مربوط بخود شوند ، دارای اثرات جانبی خواهند بود. مثلا" تابعی که باعث تغيير مقدار يک متغير سراسری مورد استفاده ساير توابع می گردد ، دارای اثرات جانبی بوده و می تواند در عملکرد ساير توابعی که از مقدار متغير فوق استفاده می نمايند ، تاثيری منفی را بدنبال داشته باشد. بديهی است توابعی که دارای اثرات جانبی می باشند،  می بايست بدفعات مشخص و با يک نظم و اولويت خاص بخدمت گرفته شوند ( فراخوانی ). مثلا" در صورتيکه تابعی برای محاسبه محيط يک مثلث نوشته شده باشد که دارای اثرات جانبی نيست ، می توان با خيال آسوده تابع فوق را بدفعات استفاده و همواره انتظار عملکرد يکسانی را نيز از آن داشته باشيم ( محاسبه محيط مثلث با توجه به پارامترهای مربوطه ) . در صورتيکه تابع فوق دارای اثرات جانبی باشد ، (مثلا" تغيير اندازه  اضلاع مثلث)  استفاده از آن  بدفعات بسيار محدود ( يک مرتبه)  منطقی بوده و در صورت تکرار در استفاده از چنين تابعی ،  نبايد انتظارعملکردی مثبت از آن را داشته باشيم . در صورتيکه زبانی دارای اثرات جانبی باشد،  اولويت اجرای دستورالعمل ها در آن می بايست،  بدرستی مشخص شود .در زبان هائی که دارای اثرات جانبی نمی باشند  ، امکان اجرای دستورالعمل ها  با هر اولويتی وجود خواهد داشت . اين بدان  معنی است که می توان بخش هائی از يک Stylesheet  انتخابی را بصورت مستقل اجراء نمود . XSLT زبانی مناسب در اين رابطه بوده و با توجه به انتظارات موجود در رابطه با اسناد ورودی ،  پتانسيل های لازم را بدون وجود اثرات جانبی ،  در اختيار استفاده کنندگان قرار می دهد .
زبان انتخابی ،  می بايست برای استفاده در موارد
batch و محاوره ای مناسب باشد . زمانيکه يک سند XML  با ظرفيت بالا ،  از  سرويس دهنده ای اخذ می گردد ، ماداميکه آخرين بايت آن از سرويس دهنده دريافت نگردد، امکان  مشاهده هيچ چيزی وجود نخواهد داشت . در صورت اعمال  تغييرات اندک در يک سند XML ، انتظار داريم  که اثر تغييرات انجام شده  در رابطه با نمايش سند را سريعا" مشاهده نمائيم . . در اين رابطه لازم است به اين نکته نيز اشاره گردد که  تعيين بخشی از سند خروجی که متاثر از تغييرات اندکی در يک بخش از سند ورودی است ،  عملی ساده نخواهد بود . تمام پردازنده های XSLT ، نيازمند استقرار کامل سند XML در حافظه ، قبل از انجام هر گونه عملياتی می باشند .  مورد فوق يکی از چالش های اصلی XSLT در مواجهه با سندهای XML با حجم بالا است .
XSLT مبتنی بر قوانين است
يک
XSLT Stylesheet ، شامل مجموعه ای از قوانين مبتنی بر  تمپليت است . هر يک از تمپليت ها ، نحوه پردازش يک المان خاص را مشخص خواهند کرد . قوانين با يک نظم و اولويت خاص سازماندهی نشده و ضرورتی به رعايت اولويت و نظم در ورودی و يا خروجی نخواهند بود . زمانيکه XSLT  ، بعنوان يک زبان تعريفی در نظر گرفته می شود،  می توان گفت که :  " زمانيکه الگوهای خاصی در سند مبداء پيدا گرديد ، چه نوع  اطلاعاتی و به چه صورت می بايست در خروجی ارائه شود."
 ساختار مبتنی بر قوانين ، بسيار مشابه
CSS است . نحوه برخورد با الگوها  در CSS و XSLT کاملا" متفاوت است  . مثلا" در CSS عنوان می شود که  قانون تعريف شده در رابطه با کدام گره  می بايست اعمال گردد ، در صورتيکه در XSLT مشخص می شود که در زمان يافتن يک الگوی  مشخص شده در سند مبداء ، چه عملياتی می بايست انجام شود.

چه زمانی می بايست از
XSLT استفاده کرد ؟

 استفاده از
XSLT در موارد زير پيشنهاد می گردد :


استفاده از اين مطلب  با ذکر منبع و اهداف غيرانتفاعی بلامانع است .
http://www.srco.
ir