PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : بررسی روند شکل گیری xslt و جایگاه آن بعنوان یک زبان برنامه نویسی



TAHA
03-10-2010, 02:12 PM
.wysiwyg { BACKGROUND: #f5f5ff; FONT: 10pt tahoma,tahoma,tahoma; COLOR: #000000 } P { MARGIN: 0px } .inlineimg { VERTICAL-ALIGN: middle } روند شکل گیری XSLT
XSLT ، نظیر سایر اعضاء خانواده بزرگ استاندارهای XML، توسط کنسرسیوم وب پیاده سازی شده است. جزئیات مربوط به شکل گیری استاندارد فوق، در آدرس http://www.w3.org/style/History (http://www.w3.org/style/History) قابل استفاده است. پیشنهاد اولیه ، برای استاندارد فوق در تاریخ بیست ویکم اگوست سال ۱۹۹۷ ارائه گردید ( http://www.w3.org/TR/NOTE-XSL.html (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 در سال ۱۹۹۸ بود . زبان پیشنهادی در سال ۱۹۹۹ ،بصورت حرفه ای مطرح و مورد استفاده قرار گرفت .

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

استفاده از گرامر مبتنی بر XMLهمانگونه که قبلا” اشاره گردید ، استفاده از گرامر SGML برای Stylesheet از سال ۱۹۹۴ مطرح شده بود . ایده استفاده از 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 نمایش داده خواهد شد .