مقايسه 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 version="1.0" encoding="iso-8859-1"?>
<greeting>Hello, world!</greeting>
خروجی مورد نظر سند XML يک فايل Html بصورت زير خواهد بود .
<html>
<head>
<title>Today's greeting</title>
</head>
<body>
<p>Hello, world!</p>
</body>
</html>
XSLT زير بمنظور تبديل سند XML و ايجاد خروجی Html استفاده می گردد .
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<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>