رفتن به مطلب

XSLT چیست ؟ ( بخش دوم )


labour

پست های پیشنهاد شده

مقایسه 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>

 

منبع: لینک ها تنها برای اعضای سایت قابل نمایش است.

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

مهمان
این موضوع برای عدم ارسال قفل گردیده است.
×
×
  • اضافه کردن...