XSLT چيست ؟ (3)

XSLT ، نظير ساير اعضاء خانواده بزرگ استاندارهای XML، توسط کنسرسيوم وب پياده سازی شده است. جزئيات مربوط به شکل گيری استاندارد فوق، در آدرس http://www.w3.org/style/History قابل استفاده است. پيشنهاد اوليه ، برای استاندارد فوق در تاريخ بيست ويکم اگوست سال 1997 ارائه گرديد ( http://www.w3.org/TR/NOTE-XSL.html ) . برای ارائه استاندارد فوق، از وجود يازده متخصص استفاده گرديد . ( پنج نفر از شرکت ماکروسافت ، سه نفر از شرکت Inso، يک
دوشنبه، 12 بهمن 1388
تخمین زمان مطالعه:
موارد بیشتر برای شما
XSLT چيست ؟ (3)
XSLT چيست ؟ (3)
XSLT چيست ؟ (3)





بررسی روند شکل گيری 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 بشرح زير است :
• XSL ، می بايست براحتی از طريق اينترنت قابل استفاده باشد.
• XSL ، می بايست همراه با گرامر XML ارائه شود
• XSL ، می بايست يک زبان تعريفی بمنظور انجام عمليات رايج در رابطه با فرمت دهی باشد.
• XSL ، می بايست امکان استفاده از يک زبان اسکريپت را بمنظور افزايش توان عملياتی فراهم نمايد .
• XSL ، می بايست امکان تطبيق يک CSS را به يک XSL stylesheet فراهم نمايد .
• قابليت استفاده آسان از XSL ، برای کاربرانی که دارای تجربه لازم در رابطه با زبان FOSI می باشند .
• تعداد ويژگی انتخابی در XSL ، می بايست حداقل مقدارممکن را دارا باشد .
• Stylesheet های نوشته شده بکمک XSL ، می بايست خوانائی مطلوبی را داشته باشند .
• طراحی XSL ، می بايست بسرعت انجام شود .
• ايجاد stylesheet بکمک XSL ، می بايست بسادگی انجام شود .
زبان ارائه شده در اولين پيشنهاد ، دارای اغلب مفاهيم کليدی XSLT است ، که در نهايت ارائه گرديد . بمنظور طراحی گرامر زبان فوق از رويکرد مبتنی بر تمپليت استفاده گرديد . بدين ترتيب امکان برخورد با گره ها ی موجود در سند مبداء و تطبيق آنها با يک الگوی تعريف شده ، فراهم می گردد . عدم وجود اثرات جانبی و امکان تفسير و برخورد با سندهای با حجم بالا ، از ديگر مواردی است که در زمان طراحی XSL به آنها توجه جدی گرديد . برآيند تمام تلاش های فوق، عرضه اولين نسخه پيشنهادی XSLT در سال 1998 بود . زبان پيشنهادی در سال 1999 ،بصورت حرفه ای مطرح و مورد استفاده قرار گرفت .

XSLT بعنوان يک زبان

XSLT ، دارای چه ويژگی منحصربفردی است که آن را بعنوان يک زبان برنامه نويسی از ساير زبان ها متمايزمی نمايد ؟ در اين بخش به سه مورد اساسی اشاره خواهد گرديد : استفاده از گرامر مبتنی بر XML ، عدم وجود تاثيرات جانبی و پردازش مبتنی بر مجموعه ای از قوانين

استفاده از گرامر مبتنی بر XML

همانگونه که قبلا" اشاره گرديد ، استفاده از گرامر SGML برای Stylesheet از سال 1994 مطرح شده بود . ايده استفاده از SGML در اين زمينه ، دارای مشکلات خاص خود است . بمنظور عرضه stylesheet در XSLT ، از گرامر مبتنی بر XML استفاده می شود . رويکرد فوق دارای مزايای زير است :
• از مزيت وجود يک پارسر XML در مرورگرها ، استفاده خواهد کرد .
• اغلب افراد از عدم وجود يک گرامر همگن و سازگار بين HTML ، XML و CSS گلايه داشته و تمايلی به تکرار آن با يک گرامر جديد ندارند .
• اکثر زبان های مبتنی بر تمپليت در حا ل حاضر، بعنوان يک outline از سند خروجی بوده که با دستورالعمل هائی نيز همراه می باشند و از اين نظر مفهوم فوق ، کاملا" شناخته شده است .
• با استفاده از ابزارهای ويژوال موجود ، امکان ايجاد اين نوع سندها براحتی وجود داشته و نيازی به تايپ نخواهد بود .
• حمايت از يونيکد
• ضرورت استفاده از يک Stylesheet بعنوان ورودی و يا خروجی در زمان تبديل ، بدفعات احساس خواهد شد( سيستم تبديل ) . اين ويژگی که يک stylesheet قادر به خواندن و نوشتن ساير Stylesheet ها باشد ، يک مزيت تلقی می گردد .

اثرات جانبی

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

XSLTمبتنی بر قوانين است

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

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

استفاده از XSLT در موارد زير پيشنهاد می گردد :
• برنامه های تبديل داده . زمانيکه قصد تبديل يک مجموعه داده مبتنی بر XML را به فرمت ديگر XML داشته باشيم ، XSLT گزينه ای مناسب خواهد بود . با استفاده از XSLT ، می توان عمليات متفاوتی نظير انتخاب داده هائی خاص از يک سند XML ، ذخيره سازی داده های مورد نظر و موارد متنوع ديگری را انجام داد . از XSLT می توان بمنظور معتبر سازی داده ها نيز استفاده کرد . XSLT ، بعنوان يک زبان برنامه نويسی، گزينه ای مناسب برای انجام پردازش های لازم در خصوص ساختار اطلاعاتی است که از محتويات مربوط جدا شده اند . از XSLT می توان در رابطه با تبديل يک سند XML به فرمت های مبتنی بر متن نيز استفاده کرد . ( مثلا" اطلاعات متنی که توسط ويرگول از هم جدا شده اند ) . يکی ديگر از ويژگی های جالب XSLT ، امکان استفاده از آن در رابطه با تبديل يک سند غيره XML به يک سند XML و يا ساير فرمت های دلخواه ديگر است . در اين مورد خاص، لازم است که يک نوع پارسر بمنظور تشخيص فرمت داده های ورودی نوشته گردد . پس از نوشتن پارسر، عمليات تبديل ، توسط يک زبان سطح بالا ميسر می گردد .
• نشر اطلاعات . تفاوت بين تبديل و نشر اطلاعات به مقصد داده ها بر می گردد . در موارديکه تبديل صورت می پذيرد، مقصد داده های تبديل شده يک نرم افزار ديگر بوده در صورتيکه در زمان نشر ، کاربران (انسان) مقصد نهائی اطلاعات می باشند. تبديل با نمايش و تبديل بدون نمايش گزينه هائی متفاوت بمنظور شناخت مفهوم نشر اطلاعات است . در زمان نشر اطلاعات، نياز به ارائه آنان بر روی کاغذ ( چاپ ) و يا وب خواهد بود . نشر اطلاعات بر روی کاغذ، مستلزم عمليات بمراتب پيچيده تری خواهد بود . در اين حالت خاص ، کاربران دارای انتظار بالائی در رابطه با کيفيت می باشند. XSL FO ، امکانی بمنظور تعريف يک مدل مبتنی بر XML از يک فايل چاپی بمنظور نمايش با کيفيت بالا بر روی صفحات نمايشگر و يا کاعذ است . نشر اطلاعات بر روی وب دارای چالش های بمراتب کمتری نسبت به کاغذ است . در اين مدل خاص، صرفا" می بايست داده ها به Html تبديل و در ادامه مرورگرها مسئوليت ارائه اطلاعات را با فرمت تعريف شده بر عهده خواهند گرفت . تبديل يک سند XML به Html ، يکی از متداولترين کاربردهای XSLT در حال حاضر است . در اين رابطه دو مرحله عمليات دنبال خواهد شد : در اولين مرحله، داده ها به يک مدل مبتنی بر XML که از لحاظ ساختاری شباهت زيادی را با سند Html مقصد دارد ، تبديل و در دومين مرحله ، ساختار مشخص شده ، با تاکيد بر امکانات Html نمايش داده خواهد شد .
منبع:http://article.mjsoft.ir


ارسال نظر
با تشکر، نظر شما پس از بررسی و تایید در سایت قرار خواهد گرفت.
متاسفانه در برقراری ارتباط خطایی رخ داده. لطفاً دوباره تلاش کنید.
مقالات مرتبط
موارد بیشتر برای شما
تجلیل از ۵۸ نخبه علمی کشور در شصت‌وچهارمین جایزه البرز
تجلیل از ۵۸ نخبه علمی کشور در شصت‌وچهارمین جایزه البرز
وضعیت موجود وقف و امور خیریه در سوئیس؛ تحلیل آماری بنیادها، هزینه‌ها و مشارکت مردمی
وضعیت موجود وقف و امور خیریه در سوئیس؛ تحلیل آماری بنیادها، هزینه‌ها و مشارکت مردمی
مفهوم وقف و امور خیریه در سوئیس؛ ساختار بنیادها، انجمن‌ها و شرایط عام‌المنفعه بودن
مفهوم وقف و امور خیریه در سوئیس؛ ساختار بنیادها، انجمن‌ها و شرایط عام‌المنفعه بودن
سقوط پهپاد بمب‌گذاری‌شده رژیم صهیونی در جنوب لبنان
play_arrow
سقوط پهپاد بمب‌گذاری‌شده رژیم صهیونی در جنوب لبنان
افشای سند جنگی دشمن به روایت سیمیاری
play_arrow
افشای سند جنگی دشمن به روایت سیمیاری
جابه‌جایی قلعه ۳۶۰ تنی با نیروی ۱۸۰۰ نفر در ژاپن
play_arrow
جابه‌جایی قلعه ۳۶۰ تنی با نیروی ۱۸۰۰ نفر در ژاپن
سند محرمانه‌ای که از اتاق جنگ دشمن لو رفت
play_arrow
سند محرمانه‌ای که از اتاق جنگ دشمن لو رفت
پزشک قلابی که با سرم بیهوشی وارد خانه‌ها می‌شد!
play_arrow
پزشک قلابی که با سرم بیهوشی وارد خانه‌ها می‌شد!
اژه‌ای: نگوییم نمی‌شود بگوییم می‌شود می‌توانیم و انجام می‌دهیم
play_arrow
اژه‌ای: نگوییم نمی‌شود بگوییم می‌شود می‌توانیم و انجام می‌دهیم
وزیرخارجه سابق آمریکا: نتانیاهو به تصویر اسرائیل در آمریکا و جهان ضربه زد
play_arrow
وزیرخارجه سابق آمریکا: نتانیاهو به تصویر اسرائیل در آمریکا و جهان ضربه زد
پوکر لژیونر ایرانی در لیگ مالزی
play_arrow
پوکر لژیونر ایرانی در لیگ مالزی
آزمایش سیستم چتر نجات رزمی و نظامی هند
play_arrow
آزمایش سیستم چتر نجات رزمی و نظامی هند
سعید اسماعیلی بدون دادن حتی یک امتیاز قهرمان شد
play_arrow
سعید اسماعیلی بدون دادن حتی یک امتیاز قهرمان شد
‏ادعای ترامپ: اگر من نبودم ایران اسرائیل را نابود می کرد
play_arrow
‏ادعای ترامپ: اگر من نبودم ایران اسرائیل را نابود می کرد
بی‌ارزش‌ترین ویدیوهایی که در یوتیوب بازدیدهای میلیونی داشته‌اند!
play_arrow
بی‌ارزش‌ترین ویدیوهایی که در یوتیوب بازدیدهای میلیونی داشته‌اند!