عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
XSLT چيست ؟ ( بخش سوم ) |
مديريت وب |
10766 |
7 |
3.7 |
با توجه به جایگاه داده در عصر حاضر و لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و خدمات خود را از طریق سایت www.fabak.ir به مخاطبان محترم عرضه می نماید
 |
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 بشرح زير است :
-
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
نمايش داده خواهد شد .