استفاده از XSLT در برنامه های وب (1)






جايگاه XSLT به منظور فرمت دهی خروجی برنامه های وب

ايجاد خروجی مناسب و با فرمت مطلوب ، از جمله اهداف مهم در تمامی برنامه های کامپيوتری است. برنامه های وب نيز از ايـن قاعده مستثنی نبوده و طراحان و پياده کنندگان اين نوع از برنامه ها ، با بهره گيری از امکانات و تکنولوژی های متفاوت سعی در ارائه خروجی مناسب و با فرمت قابل قبول برای مخاطبان خود می نمايند. خروجی يک برنامه وب ، در سطح سرويس گيرندگان ارائه می گردد ، بديهی است به منظور فرمت مناسب خروجی برنامه های وب ، می بايست بر تکنولوژی هائی متمرکز گرديد که امکان بکارگيری آنان در سطح سرويس گيرنده و از طريق مرورگر کاربران ، ميسر می باشد . مسئوليت ميزبان نمودن بخش رابط کاربر برنامه های وب برعهده مرورگر بوده و لازم است تمامی تلاش های انجام شده در اين خصوص با تاکيد بر اهميت و جايگاه مرورگر ها ، سازماندهی و مديريت گردد . ASP.NET ( پلات فرم دات نت برای ايجاد برنامه های وب ) ، از دو روش عمده در ارتباط با ايجاد فرمت مناسب خروجی ( Formatting)برای برنامه های وب ، استفاده می نمايد :
• استفاده از CSS . از تکنولوژی CSS)Cascading style sheet) ، به منظور کنترل شکل ظاهری عناصر موجود بر روی يک فرم وب استفاده می گردد . از امکانات CSS ، می توان در جهت تنظيم رنگ ، اندازه ، فونت و رفتار عناصر HTML موجود بر روی يک صفحه وب استفاده نمود .
• استفاده از XSLT . از تکنولوژی XSLT)Extensible Stylesheet Language Transformation ) ، به منظور تبديل اطلاعات يک فايل XML به خروجی HTML و استقرار اطلاعات فوق بر روی يک فرم وب ، استفاده می گردد . XSLT ، داده مورد نياز را از فايل XML دريافت و پس از تبديل آنان به عناصر HTML ، سبک های ( Styles ) مشخص شده را در رابطه با هر يک از عناصر بکار می گيرد .
در اين مقاله به بررسی نحوه استفاده از XSLT ، به منظور تعريف فرمت خروجی برنامه های وب، خواهيم پرداخت .
XSLT ، از کنترل سرويس دهنده XML به منظور ايجاد فرمت خروجی يک فايل XML ( ورودی ) با استفاده از مجموعه قوانين ذخيره شده در يک فايل XSL ، استفاده می نمايد . فايل XSL ، مشابه فايل CSS است که در مقاله "استفاده از CSS در برنامه های وب دات نت " با آن آشنا شديم .فايل XSL ، قوانين formatting لازم به منظور ايجاد خروجی مناسب در يک فرم وب را ارائه می نمايد . برخلاف فايل های CSS ، يک فايل XSL قادر به استقرار عناصر در هر مکانی بر روی يک فرم وب بوده و همچنين امکان انجام عمليات منطقی نظير فرآيندهای تکرار و شرطی نيز به کمک آن ميسر می گردد. فايل های XSL را می توان بمنزله يک لايه هوشمند فرمت دهی در نطر گرفت که مکمل فايل های CSS می باشند ( نه جايگزين آنان ) . در چنين مواردی می توان ساختار داده موردنظر جهت استقرار بر روی يک فرم وب را با استفاده از XSL ، مشخص واز CSS به منظور تعريف شکل ظاهری عناصر تعريف شده در لی اوت مورد نظر،استفاده نمود .
برای استفاده از XSLT در يک فرم وب ، مراحل زير را دنبال می نمائيم :
• افزودن يک کنترل سرويس دهنده XML به يک فرم وب ( استفاده از Toolbox در محيط ويژوال استوديو دات نت )

• مقداردهی مناسب خصلت DocumentSource کنترل سرويس دهنده XML به فايل XML
• مقداردهی مناسب خصلت TransformSource کنترل سرويس دهنده XML به فايل XSL که از آن بمنظور فرمت دهی خروجی ، استفاده می گردد .

شکل زير ، فرم وب را پس از استقرار يک کنترل سرويس دهنده XML بر روی آن ، نشان می دهد.

در زمان اجراء ، کنترل سرويس دهنده XML ، ورودی XML را با استفاده از اطلاعات موجود در فايل XSL به منظور توليد فرمت مناسب خروجی ، پردازش می نمايد .

ايجاد يک فايل XML

فايل های XML ، روشی بمنظور تشريح ساختار داده بصورت متن می باشند .
XML به منظور مشخص نمودن عناصر داده از تگ <element > ... < /element> استفاده می نمايد ( مشابه HTML ) . فايل های XML بر خلاف فايل های HTML از مجموعه قوانين خاصی ، تبعيت می نمايند :
• هر آيتم ، می بايست دارای يک تگ شروع و يک تگ پايان باشد . در فايل های HTML برخی از تگ ها نظير : <br> و <li> می توانند بدون تگ پايانی ( < br> ، <li> ) استفاده گردند . در فايل های XML ، چنين عملياتی مجاز نمی باشد .
• اسامی تگ ها ، نسبت به حروف بزرگ و کوچک حساس می باشد . در فايل های HTML ، تگ های <P> و <p> ، معادل يکديگر بوده و در اين رابطه مرورگر خطائی را ارائه نمی نمايد. در فايل های XML ، تگ های فوق بعنوان دو تگ مجزا در نظر گرفته می شوند.
• مقادير نسبت داده شده به خصلت های هر تگ ، می بايست محصور بين علامت " " باشد ( Double quotation ) . در فايل های HTML ، می توان علامت کوتيشن را برای خصلت هائی که از نوع عددی می باشند ، حذف نمود ( نظير : <table cols=3> . در فايل های XML ، می بايست همواره از Double quotation استفاده شود ( نظير : <"table cols="3 > ) .
• آيتم های تودرتو ، می بايست با انظباط خاصی خاتمه يابند . در فايل های HTML استفاده از تگ هائی بصورت زير مجاز می باشد :

Nested Item in HTML File

<b>Bold text <i> italic bold </b>regular italic</i>


در فايل های XML چين عملياتی مجاز نخواهد بود و می بايست تگ <i> قبل از تگ <b> بسته شود .

Nested Item in XML File

<b>Bold text <i> italic bold </i></b><i>regular italic</i>


مجموعه قوانين فوق، نشاندهنده وجود پتانسيل های مهمی در فايل های XML نسبت به فايل های HTML بوده و کاربران می توانند تگ های اختصاصی و دلخواه خود را تعريف نمايند.
بمنظور ايجاد يک فايل XML در ويژوال استوديو دات نت ، گزينه Add New Item را از طريق منوی Project انتخاب و در ادامه از طريق ليست Template ، گزينه XML file را انتخاب می نمائيم .

مرحله اول

مرحله دوم


به منظور صرفه جوئی در زمان ايجاد و اشکال زدائی يک فايل XML ، شايسته است که در ابتدا ساختار سند XML مشخص و پس از تعريف تگ های مورد نظر ، اقدام به ايجاد آن با استفاده از امکانات ويژوال استوديو دات نت ، نمود. XMLFile1 ، يک فايل نمونه XML است که با توجه به ساختار تعريف شده ، اطلاعات دانشجويان را در خود ذخيره می نمايد( نام و نام خانوادگی ، جنسيت ، رشته تحصيلی ، آدرس منزل و ... )

Student XML file:XMLFile1

<?xml version="1.0" encoding="utf-8" ?>
<Students>
<Student>
<Gender>مرد</Gender>
<Fname>محمدرضا</Fname>
<Lname>ايرانی</Lname>
<Study>فنآوریاطلاعات و ارتباطات</Study>
<Address>
<Home></Home>
<Office></Office>
<Tel>
<TelHome></TelHome>
<TelOffice></TelOffice>
</Tel>
<Email></Email>
</Address>
<Marks>
<Quiz>
<Q1></Q1>
<Q2></Q2>
<Q3></Q3>
</Quiz>
<MidTerm></MidTerm>
<Final></Final>
</Marks>
</Student>
</Students>


داده مربوط به هر يک از آيتم ها بين تگ های شروع و پايان قرار می گيرد. ساختار فايل و اسامی عناصری است که به نوعی محتويات يک المان را تشريح می نمايند، از نکات مهم يک فايل XML محسوب می گردد( به غير از فرمت دهی ) . ساختار XML بصورت سلسه مراتبی بوده و به هر آيتم موجود در ساختار فوق ، با نام "گره " ( Node ) ، مراجعه می گردد . گره ها دارای ارتباطات از نوع Parent-child بوده که با استفاده از XPath)XML Path Language) ،مشخص می گردند ( نظير آدرس دهی يک فولدر ) .

ايجاد يک فايل XSL

فايل XSL ، مسئوليت ارائه Layout و منطق لازم به منظور تبديل داده ذخيره شده در فايل XML به خروجی مورد نظر را برعهده دارد. به منظور ايجاد يک فايل XSL در ويژوال استوديو دات نت ، گزينه Add New Item را از طريق منوی Project انتخاب و در ادامه از طريق ليست Template ، گزينه XSL file را انتخاب می نمائيم .
فايل XSL ، شامل عبارات تمپليتی است که آيتم های مورد نظر ورودی از فايل XML را شامل می شود . هر تمپليت ، شامل عناصر استاندارد HTML است که به منظور فرمت دهی عناصر ورودی از فايل XML استفاده می گردد .تمپليت XSL زير ، عناصر Fname،Lname و Study را از فايل XMLFile1 به عنصر h3 در HTML تبديل می نمايد .

XSLT File :XSLTFile1

<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/Students/Student">
<xsl:apply-templates select="Student"/>
<h2 dir="rtl" align="center"><xsl:text>مشخصاتدانشجويان</xsl:text></h2>
<hr/>
<h3 dir="rtl"><xsl:value-of select="Fname"/></h3>
<h3 dir="rtl"><xsl:value-of select="Lname"/></h3>
<h3 dir="rtl"><xsl:value-of select="Study"/></h3>
</xsl:template>
</xsl:stylesheet>


درمثال فوق از عناصر و خصلت های XSL زير، استفاده شده است :
• عنصر xsl:stylesheet
خصلت version : نسخه استفاده شده XSL را مشخص می نمايد( نسخه يک ، آخرين نسخه موجود می باشد ) .
خصلت xmlns:xsl : پيشوند عناصر موجود در فايل XSL را مشخص می نمايد .
• عنصر xsl:template
خصلت match : يک تمپليت برای يک گره XML را تعريف می نمايد .
• عنصر xsl:apply-templates
خصلت select : يک تمپليت را دررابطه با گره انتخاب شده ، بکار می گيرد .
• عنصر xsl:value-of
خصلت select : بازيابی مقدار يک گره XML و يا بررسی يک عبارت XPath را انجام می دهد .
• عنصر xsl:text . متن و يا فضای خالی مورد نظررا در خروجی نمايش می دهد .
شکل زير نحوه عملکرد عناصر فوق بمنظور تبديل داده XML را از طريق کنترل سرويس دهنده XML نشان می دهد( استفاده از فايل های XMLFile1 و XSLTFile1 ) .

عناصرXSL استفاده شده در مثال فوق ، حداقل عمليات لازم به منظور نمايش داده را شامل می شود : تعريف يک تمپليت ، درج داده درون تمپليت ، نمايش مقادير مورد نظر از فايل XML و درج متن . عمليات فوق را می توان با بکارگيری عناصر HTML معمولی و Style sheet نيز انجام داد. استفاده از XSL مزايای متعددی را بدنبال داشته که به دو مورد آن اشاره می شود :
• امکان تغيير موقعيت عناصر ( لی اوت صفحه ) در فايل XSL ، بدون نياز به تغيير داده ، فراهم می گردد .
• امکان انجام عمليات منطقی بر روی داده نظير پردازش های تکراری و شرطی ، فراهم می گردد.
منبع:http://article.mjsoft.ir