labour 106 ارسال شده در آبان 21، 1394 گزارش اشتراک گذاری ارسال شده در آبان 21، 1394 مقایسه XSLT و SQL در یک بانک اطلاعاتی رابطه ای ، داده ها شامل مجموعه ای از جداول می باشند . داده ها در فایل هائی تخت با فرمت های مورد نظر ذخیره می گردند. قدرت یک بانک اطلاعاتی رابطه ای از ساختمان داده آن نبوده و به زبانی که قادر به پردازش داده ها است(SQL) ، وابسته است . در روشی مشابه، XML ، صرفا" یک ساختمان داده مناسب از اطلاعات را تعریف و با استفاده از یک زبان سطح بالا می توان عملیات دلخواه در رابطه با ساختمان داده را انجام داد (XSLT) . SQL و XSLT دو زبان کاملا" متفاوت نسبت بیکدیگر می باشند .در حالتی خاص ، می توان این ادعا را داشت که آنان دارای شباهت هائی در برخی موارد عملیاتی هستند. مثلا" بمنظور پردازش داده های موجود در یک بانک اطلاعاتی رابطه ای و یا یک سند XML ، زبان پردازش می بایست مبتنی بر یک گرامر مشخص باشد . در SQL از عبارت SELECT و در XSLT از عبارات XPath استفاده می گردد . زبان عبارات XPath ، یکی از بخش های اساسی XSLT بوده که توسط کنسرسیوم وب استاندارد شده است . امکان استفاده از XPath مستقل از XSLT نیز وجود دارد . گرامر XPath ، امکان بازیابی گره های خاصی را از یک سند XML فراهم می نماید . بدین منظور ممکن است از طریق مسیری در سند XML و یا از طریق فهرستی که گره ها در آن قرار خواهند گرفت ، این امر تحقق یابد . با استفاده از XPath ، امکان دستیابی به گره هائی خاص فراهم و در ادامه با استفاده از XSLT امکان اخذ نتایج مورد نظر بوجود می آید . ( اجراء پرس وجوی لازم ) XSLT و SQL دارای شباهت های دیگری نیزمی باشند . هر دو زبان ، دارای یک ویژگی مهم با نام closure می باشند. ویژگی فوق، بدین مفهوم است که خروجی ، دارای ساختمان داده مشابه ورودی است . مثلا" SQL خروجی خود را بصورت یک جدول و XSLT بصورت یک درخت ارائه خواهد داد . بدین ترتیب می توان خروجی یک عملیات را بعنوان ورودی در اختیار عملیات بعدی قرار داد. در SQL این عملیات با استفاده از تعریف view و یا Subquery و در XSLT با ارسال داده از طریق مجموعه ای stylesheet انجام می گیرد . در دنیای واقعی وچود XSLT و SQL ضرورت داشته و ارتباطات متعدددی بین آنها وجود خواهد داشت . داده ها عموما" در بانک های اطلاعاتی رابطه ای ذخیره و با فرمت XML بین سیستم های متنوع ارسال خواهند شد. مدل های داده در هر یک از سیستم های فوق با یکدیگر متفاوت بوده و XSLT قادر به ایفای نقشی حساس در رابطه با تبدیل مدل های متفاوت داده است . تولیدکنندگان متفاوت بانک های اطلاعاتی در تلاش برای ارائه محصول خود بگونه ای هستند که امکان ارتباط XML و SQL را فراهم نماید . SQL Server 2000 امکان استفاده از پرس و جو های مبتنی بر XPath را حمایت می نماید. پردازنده XSLT مهمترین رسالت پردازنده XSLT ، بکارگیری یک XML stylesheet در رابطه با یک سند XML و ایجاد( تولید ) خروجی مناسب است . لازم به یادآوری است که هر یک از موارد اشاره شده ، بمنزله یک برنامه XML بوده و بدیهی است که ساختار هر یک از آنها یک درخت باشد . عملکرد پردازنده XSLT وابسته به وجود درخت های فوق است. پردازنده های متعددی در رابطه با XSLT نظیر Saxon, xt, MSXML3 وجود دارد . پردازنده های فوق را می توان بصورت رایگان تهیه نمود . پردازنده saxon ، قادر به تبدیل سند XML به سایر مدل های دیگر است ( یک سند Html) . برای استفاده از برنامه فوق،می بایست برنامه Instan Saxon را از آدرس لینک ها تنها برای اعضای سایت قابل نمایش است. دریافت و بر روی سیستم نصب کرد . برنامه فوق به زبان جاوا نوشته شده و می توان آن را مستقیما" از طریق خط دستور اجراء نمود ( ضرورتی به داشتن مرورگرهای وب و یا سرویس دهنده وب نخواهد بود ) . مرورگرها و سرویس دهندگان وب در این حالت با سند تبدیل یافته سروکار خواهند داشت . xt ، یکی دیگر از پردازنده های XSLT است . برنامه فوق با زبان جاوا نوشته شده و امکان اجرای آن از طریق خط دستور وجود دارد . برای دریافت پردازنده فوق می توان به آدرس لینک ها تنها برای اعضای سایت قابل نمایش است. مراجعه نمود. پردازنده فوق همانند saxon ، قادر به فعالیت با پارسر های مبتنی بر SAX می باشد . امکان اجرای XSLT stylesheet بهمراه مرورگر IE نیز وجود دارد . بدین منظور می بایست نسخه پنج مرورگر فوق و آخرین نسخه پردازنده MSXML مربوط به شرکت ماکروسافت ، بر روی سیستم نصب گردند. برای دریافت آخرین نسخه پردازنده فوق می توان به آدرس لینک ها تنها برای اعضای سایت قابل نمایش است. مراجعه کرد . مثال : در ادامه به بررسی مثالی خواهیم پرداخت که نحوه استفاده از XSLT بمنظور تبدیل یک سند ساده XML را نشان خواهد داد . فرض کنید ، یک سند ساده XML مطابق زیر را داشته باشیم : یک سند ساده XML <?xml version="1.0" encoding="iso-8859-1"?> <greeting>Hello, world!</greeting> خروجی مورد نظر سند XML یک فایل Html بصورت زیر خواهد بود . خروجی Html <html> <head> <title>Today's greeting</title> </head> <body> <p>Hello, world!</p> </body> </html> XSLT زیر بمنظور تبدیل سند XML و ایجاد خروجی Html استفاده می گردد . XSLT بمنظور تبدیل سند XML و ایجاد خروجی Html <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl=" لینک ها تنها برای اعضای سایت قابل نمایش است. "> <xsl:template match="/"> <html> <head> <title>Today's greeting</title> </head> <body> <p><xsl:value-of select="greeting"/></p> </body> </html> </xsl:template> </xsl:stylesheet> اجرای StyleSheet برای اجرای stylesheet با استفاده از سه پردازنده اشاره شده در بخش قبل ، مراحل زیر را می بایست دنبال کرد. استفاده از پردازنده saxon .بمنظور اجرای Stylesheet فوق با استفاده از پردازنده saxon ، عملیات زیر را می بایست انجام داد : دریافت برنامه پردازنده ( آدرس مربوطه در بخش قبل اشاره گردید ) نصب برنامه saxon.exe در یک فولدر مناسب با استفاده از برنامه notepad دو فایل اشاره شده را در فایل هائی با نام hello.xml و hello.xsl ذخیره نمائید. خط دستور DOS را فعال نمائید .(start|programs|MSDOS prompt) دستور saxon hello.xml hello.xsl را در خط دستور تایپ نمائید . خروجی html بر روی صفحه نمایش داده خواهد شد . در صورتیکه قصد مشاهده خروجی را در مرورگر داشته باشید ، خروجی خط دستور را در یک فایل Html بصورت زیر ذخیره نمائید . Saxon hello.xml hello.xsl > hello.html استفاده از پردازنده xt . برای اجرای پردازنده xt ، از روشی مشابه saxon استفاده شده با این تفاوت که در عوض استفاده از برنامه saxon از برنامه xt استفاده می گردد . استفاده از پردازنده MSXML . بمنظور اجرای stylesheet بهمراه مرورگر IE ، می بایست تغییرات اندکی در سند XML بمنظور مراجعه به stylesheet ایجاد گردد : <?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet type="text/xsl" href="https://go.20script.ir/index.php?url=hello.xsl"?> <greeting>Hello, world!</greeting> در ادامه می توان فایل hello.xml را در مرورگر IE ، فعال و مشاهده نمود . مرورگر فوق ، سند XML را خوانده و از وجود یک stylesheet آگاه می گردد . در ادامه stylesheet مربوطه فعال و بمنظور تبدیل سند XML و ایجاد خروجی Html ، آن را اجراء می نماید . در صورتیکه بر روی صفحه نمایشگر عبارت hello,world نمایش داده نشود و صرفا" سند XML مشاهده گردد، علت عدم استفاده از آخرین نسخه MSXML بهمراه مرورگر بوده و می بایست آخرین نسخه را از آدرس اشاره شده دریافت و بر روی سیستم نصب نمود . تشریح نحوه عملکرد XSLT در رابطه با مثال فوق اولین خط فایل stylesheet ، شامل دستور زیر است : <?xml version="1.0" encoding="iso-8859-1"?> دستور فوق، اعلام می نماید که یک XSLT stylesheet ، خود بعنوان یک سند XML است . برای encoding کاراکترها ،می توان از استانداردهای متعدد موجود منجمله utf-8 استفاده کرد . در ادامه با خط زیر مواجه می گردیم : <xsl:stylesheet xmlns:xsl=" لینک ها تنها برای اعضای سایت قابل نمایش است. " version="1.0"> خط فوق، عنوان استاندارد XSLT است . یک المان شروع که نوع سند را بعنوان یک stylesheet معرفی می نماید . خصلت xmlns:xsl تعریف یک namespace بوده که مشخص می نماید پیشوند xsl در ادامه بمنظور مراجعه به المان های تعریف شده ( استاندارد کنسرسیوم وب XSLT ) ، استفاده خواهد شد . در ادامه با خط زیر مواجه می شویم : <xsl:template match="/"> المان <xsl:template> ، یک قانون تمپلیت را تعریف که بر اساس آن نحوه برخورد با بخش های خاص سند مبداء در هنگام پردازش، تبین می گردد . خصلت "/" مشخص می نماید که قانون فوق از ابتدای سند مبداء اعمال خواهد شد . در حقیقت، عبارت فوق یک عبارت مبتنی بر XPath بوده و المان ریشه سند XML را مشخص می نماید . یک سند XML دارای یک ساختار سلسله مراتبی بوده و همانند یونیکس که از "/" برای مشخص نمودن ریشه استفاده می نماید، XPath نیز از "/" برای مشخص نمودن المان ریشه در یک سند XML استفاده می نماید . در مدل DOM به عنصر فوق " Document object" و در XPath به آن ریشه گفته می شود . در ادامه با خطوط زیر مواجه می شویم : <html> <head> <title>Today's greeting</title> </head> <body> <p><xsl:value-of select="greeting"/></p> </body> </html> بدنه تمپلیت،نحوه ایجاد خروجی را مشخص می نماید . اکثر بدنه تمپلیت در مثال فوق ، مجموعه ای از المان های Html و متن مورد نظر را که می بایست در فایل خروجی منعکس گردند ، شامل می گردد . در دستورات فوق یک المان خاص با نام <xsl:valeu-of> وجود داشته که یک دستورالعمل XSLT است( چون از namespace مربوطه با نام xsl استفاده می نماید ) . دستورالعمل فوق ، مقدار یک گره موجود در سند مبداء را در سند خروجی تکثیر می نماید . خصلت SELECT مربوط به المان ، گره ای را که مقدار آن می بایست انتخاب شود را مشخص می نماید . ( تمام المان های <greeting> که فرزند گره مربوطه می باشند ،انتخاب می گردند ) . در ادامه با دستور زیر مواجه می گردیم : </xsl:template> برای یک تمپلیت ساده نظیر آنچه در مثال فوق وجود داشت ، می توان برخی از بخش ها را حذف نمود. با توجه به اینکه صرفا" از یک تمپلیت استفاده شده است المان <xsl:template> را می توان حذف نمود . در این حالت Stylesheet مربوطه بصورت زیر خواهد بود : <html xsl:version="1.0" xmlns:xsl=" لینک ها تنها برای اعضای سایت قابل نمایش است. "> <head> <title>Today's greeting</title> </head> <body> <p><xsl:value-of select="greeting"/></p> </body> </html> منبع: لینک ها تنها برای اعضای سایت قابل نمایش است. لینک به دیدگاه به اشتراک گذاری در سایت های دیگر More sharing options...
پست های پیشنهاد شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.