|
ده نکته در رابطه با XSL
    -(3 Body)
|
ده نکته در رابطه با XSL
Visitor
287
Category:
دنياي فن آوري
تکنولوژي XSL ، از CSS)Cascading Style Sheets) اقتباس شده است . CSS از يک Stylesheet بمنظور فرمت يک فايل HTML استفاده مي نمايد .XSL و CSS در موارد متعددي با يکديگر تفاوت دارند. CSS ، امکان تعريف رنگ ها ، مشخص نمودن زمينه ها ، نوع فونت ها و ... را براي فايل هاي مبتني بر Html فراهم مي نمايد. XSL امکان تبديل يک فايل XML را به يک فايل Html ( و يا ساير فرمت هاي دلخواه نظير متن ) فراهم مي نمايد. در اين مقاله ده نکته مهم در رابطه با تکنولوژي XSL بيان مي گردد . نکته اول: همزمان با ارائه تکنولوژي XML توسط کنسرسيوم وب ، تکنولوژي XSLT)Extensible StyleSheet Language for Transformation )، براي تبديل يک سند به نوع ديگر ، مطرح گرديد. در زمان پياده سازي XSLT ، تکنولوژي ديگر و مرتبط با XML با نام XPointer نيز ارائه گرديد. XPointer ، مکانيزمي براي اشاره به بخش هاي متفاوت يک سند XML است . يکي ديگر از تکنولوژي هاي مرتبط با XML ، با نام XPath مطرح و ارائه گرديد. XSLT,XPointer و XPath جملگي تکنولوژي هاي مبتني بر XML مي باشند . نکته دوم: تکنولوژي XSLT ، مشابه يک زبان برنامه نويسي بوده و داراي توابع و متدهاي فراواني است که نمونه آنها را مي توان در ساير زبان هاي برنامه نويسي مشاهده نمود. مثلا" XSLT داراي يک حلقه تکرار با نام for-each است .<XSL:for-each> .تکنولوژي فوق داراي برخي امکانات خاص ديگر است که نمونه آنها در ساير زبانهاي برنامه نويسي وجود ندارد . مثلا" با استفاده از المان <XSL:script> ، مي توان در هر مکان دلخواه ، اقدام به درج اسکريپت هاي مورد نظر نمود. براي درج محتويات يک فايل نيز مي توان از المان <XSL:include> استفاده کرد . در صورتيکه XML را بمنزله داده ها در نظر بگيريم ، XSL ، زبان برنامه نويسي مناسب ، بمنظور انجام عمليات دلخواه بر روي داده ها است . نکته سوم: با اينکه XSLT مشابه يک زبان برنامه نويسي است ولي داراي يک تفاوت اساسي با زبانهاي برنامه نويسي است . زبان XSLT مبتني بر تمپليت ها مي باشد . با استفاده از تمپليت ها مي توان نحوه پردازش يک المان را مشخص نمود. قوانين تمپليت مي توانند با اولويت هاي متفاوت و بصورت دلخواه تعريف و استفاده گردند. XSLT يک زبان تعريفي است . (در صورت مواجه شدن با يک الگو ، خروجي به چه صورت توليد مي گردد ) . روش برنامه نويسي در XSLT ، مشابه زبانهاي VB و يا جاوا نمي باشد . زبانهاي فوق بصورت "رويه اي " مي باشند . ( XSLT زباني تعريفي است ) نکته چهارم: در تمام فايل هاي XSL ، مي بايست XSL namespace مشخص گردد. بدين ترتيب پارسر از نوع نسخه XSLT آگاهي پيدا خواهد کرد . براي مشخص نمودن namespace ، عموما" از عبارت زير استفاده مي گردد. با معرفي namespace مربوطه ، مي توان يک XSLT را بگونه اي طراحي و پياده سازي کرد که هم با نسخه هاي قبلي و هم با نسخه هاي بعدي ، سازگار باشد . <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> نکته پنجم: همانگونه که اشاره گرديد ، XSLT يک زبان مبتني بر تمپليت است . با تعريف يک تمپليت خاص و دلخواه ، عمليات تطبيق آن با اطلاعات موجود در فايل XML انجام خواهد شد. با توجه به اينکه تکنولوژي XSLT از تمپليت ها استفاده مي نمايد ، هر فايل XSL مي بايست داراي حداقل يک تمپليت تعريف شده باشد . تمپليت تعريف شده عموما" بصورت زير است : < xsl:template match ="/" > ريشه تمپليت شامل عبارت "/" = match مي باشد ( ريشه سند XML است ) . در صورتيکه المان ريشه در سند XML با نام PEOPLE باشد ، عبارت فوق بصورت " match="PEPOLE ، خواهد بود . تعداد تمپليت هاي موجود در XSLT داراي محدوديت نمي باشد . نکته ششم: در زمان انجام عمليات در XSLT ، محدوده مورد نظر براي يک پرسو جو (query) ، گره (node ) در حال پردازش است . بنابراين در تمپليت "/" = xsl:template match،محدوده عملياتي ريشه سند XML است . زمانيکه با استفاده از xsl:for-each در يک حلقه تکرار مستقر مي گرديم ،محدوده عملياتي شامل هر يک از گره هائي خواهد بود که در حلقه ايجاد مي گردند . " محدوه عملياتي " (Context) ، يکي از مشخصه ها ي مهم تکنولوژي XPath است . يک برنامه XSLT بسيار مشابه برنامه اي خود بازگشتي بوده ( داراي چندين حلقه تکرار است ) و بدفعات از کدهاي موجود در تمپليت استفاده خواهد شد . نکته هفتم: " مکان " (Location) ، يکي از مشخصه هاي مهم XPath است . مثلا" / ، بمنظور انتخاب المان ريشه در سند جاري و يا گره موجود در محدوده عملياتي است . article/ ، باعث انتخاب المان "article" که خود فرزند ريشه است ، مي گردد . x/article ، باعث انتخاب تمام المان هاي "article" که فرزند x مي باشند ، خواهد شد . آدرس PERSON/PEOPLE ، باعث انتخاب تمام المان هاي PEPOLE که ريشه آنان PERSON است ، مي گردد . نکته هشتم: آدرس دهي مبتني بر مکان ، امکان استقرار بر روي گره هاي مورد نظر براي پردازش را فراهم مي نمايد .مثلا" با معرفي آدرس PEPOLE/PERSON امکان يافتن تمام المان هاي PERSON در المان PEPOLE فراهم مي گردد . با استفاده از مسيريابي مبتني بر مکان ، مي توان موقعيت خود را در سند XML تغيير و بسمت بالا و يا پائين حرکت کرد . براي يافتن تمام المان هاي PERSON با عمق دلخواه ( فاصله المان تا ريشه ) و ريشه PEOPLE از آدرسي مشابه PERSON//PEOPLE / استفاده مي گردد . نکته نهم: تکنولوژي XPath ، الگوهاي مناسب براي فيلتر نمودن داده ها را با استفاده از امکاناتي نظير AND, + - > <=, mod ، فراهم مي نمايد . مثلا" [" article[author="Ali" and author="Reza، گره هاي article را که نام author آنان Ali و Reza است برمي گرداند . XPath داراي توابعي نظير : Count,position,substring و sum است . مثلا" عبارت زير ،باعث برگرداندن مقدار Total Price مي گردد . در مثال فوق از تابع sum براي محاسبه مجموع قيمت هاي ذخيره شده توسط المان price ، استفاده شده است .. تکنولوژي XSLT و XPath عموما" در کنار يکديگر استفاده مي گردند . <p>Total Price = <xsl:value-of select="sum(//price)"/></p> نکته دهم: تکنولوژي XSLT ، از معماري مبتني برقانون که در آن تمپليت ها داراي نقشي کليدي هستند، استفاده مي نمايد . برنامه نويسي XSLT ،عموما" بصورت خود بازگشتي بوده و بدين دليل همواره مي بايست در رابطه با محدوده عملياتي که تمپليت اجراء خواهد شد ، دقت لازم را انجام داد . XSLT و XPath داراي پتانسيل هاي زيادي بوده که بمنظور پردازش سندهاي XML ، مي توان از آنها استفاده کرد . منبع:http://article.mjsoft.ir /خ
|
|
|