جستجو در محصولات

گالری پروژه های افتر افکت
گالری پروژه های PSD
جستجو در محصولات


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
XSLT چيست ؟ (2)
-(5 Body) 
XSLT چيست ؟ (2)
Visitor 596
Category: دنياي فن آوري

بررسي جايگاه تکنولوژي XSLT در بين خانواده بزرگ تکنولوژي هاي مرتبط با XML

در ادامه به بررسي ارتباط موجود بين XSLT و ساير استانداردهاي موجود در زمينه XML ، خواهيم پرداخت .

XSLT و XSL

آغاز حيات XSLT ، از يک زبان بزرگتر با نام XSL همراه بوده است . همانگونه که از نام زبان فوق مشخص است ، XSL ، با هدف تعريف نحوه فرمت سندهاي XML ، بمنظور نمايش بر روي صفحه نمايشگر، کاغذ و ساير موارد ، طراحي و عرضه شده است . ارائه يک سند XML مستلزم تحقق دو فرآيند متمايز است . در اولين فرآيند، مي بايست با انجام عمليات متفاوت نظير انتخاب ، گروه بندي و ذخيره المان ها ، يک تبديل ساختاري در سند ايجاد گردد . در دومين فرآيند ، مي بايست ماحصل عمليات انجام شده بر روي المان ها با فرمت دلخواه در خروجي ( مثلا" نمايشگر ) نمايش داده شود . فرآيندهاي فوق کاملا" از يکديگر مستقل بوده و بر همين اساس XSL به دو بخش مجزاء تفسيم شده است: XSLT براي تعريف و انجام تبديلات و XSL بمنظور تعريف نحوه فرمت و قالب نمايش ( ارائه ) اطلاعات . ( ويژگي فوق را XSL-FO نيز مي گويند ) . (XSL Formatting Objects) . براي آگاهي از مشخصات و مستندات مربوط به XSL-FO مي توان به آدرس http://www.w3.org/TR/xsl مراجعه کرد. XSLT مي بايست داراي قابليت ها ي خاصي بمنظور توليد خروجي مورد نظر باشد . XSL-FO، امکانات متعدد و مناسبي در رابطه با ايجاد خروجي با کيفيت بالا را فراهم مي نمايد. اغلب پياده کنندگان نرم افزار صرفا" تمايل به تبديل يک سند XML به Html را داشته تا زمينه استفاده فراگير نتايج در انواع مرورگرها فراهم گردد . در برخي حالات از امکانات CSS)Cascading style sheets) نيز بهمراه XSLT استفاده مي شود .

XSLT و XPath

در زمان پياده سازي XSLT ، برخي تعارضات بين گرامر عبارات استفاده شده در XSLT (بمنظور انتخاب بخش هاي خاصي از يک سند) و زبان XPointer ( بمنظور ارتباط يک سند با سند ديگر) بروزکرد . بمنظور ممانعت از داشتن دو زبان متفاوت عبارات که با يکديگر overlap دارند ، کميته هاي XSLT و XPointer کنسرسيوم وب ، تصميم به ترکيب توان آنها با يکديگر و تعريف يک زبان جديد با نام XPath نمودند . نسخه شماره يک XPath، همزمان با ارائه XSLT نيز عرضه گرديد ( شانزدهم نوامبر سال 1999 ) .
XPath، بعنوان يک زبان زيرمجموعه در يک XSLT stylesheet ايفاي وظيفه مي نمايد . يک عبارت XPath ، ممکن است بمنظور انجام يک محاسبات عددي و يا عمليات بر روي رشته ها و يا بررسي شرايط منطقي استفاده گردد . ،XPath در اغلب حالات بمنظور مشخص نمودن بخش هاي متفاوت يک سند ورودي که قصد انجام پردازش بر روي آن وجود دارد استفاده مي گردد . مثلا" دستورالعمل زير قيمت ميانگين را براي تمام کتاب هاي موجود در يک سند ورودي محاسبه مي نمايد .

<xsl:value-of select="sum(//book/@price) div count(//book)"/>


در مثال فوق ، المان <xsl:value-of> يک دستورالعمل تعريف شده در XSLT است . دستورالعمل فوق ، باعث نوشتن يک مقدار در سند خروجي مي گردد . خصلت select ، يک عبارت مبتني بر XPath است . عبارت فوق، مسئول محاسبه مقداري است که مي بايست در خروجي نمايش داده شود . در اين مثال خاص ، مجموع خصلت هاي price مربوط به تمام المان هاي <book> محاسبه و بر تعداد المان هاي موجود <book> تقسيم تا معدل مربوطه محاسبه گردد .
تفکيک XPath و XSLT از يکديگر منطقي بنظر مي آيد ولي در مواردي خاص تقسيم بندي و تمايز انجام شده باعث بروز مسائلي مي گردد .در برخي حالات ، تشخيص اينکه کدام سند مي بايست خوانده شده تا پاسخ مناسب در رابطه با يک سوال خاص داده شود، مشکل خواهد بود . مثلا" يک عبارت XPath مي تواند شامل يک مرجع به متغيري باشد ، ولي ايجاد و مقدار دهي اوليه آن از وظايف XSLT است . جايگاه تعريف يک تابع در Xpath و XSLT يکي ديگر از مسائل مربوط به تفکيک دو تکنولوژي فوق است . عبارات XPath قادر به فراخواني توابع مي باشند ( در اين راستا مجموعه گسترده اي از توابع استادندارد تعريف شده است ) . برخي از آنان نظير string-lenght در عبارات XPath تعريف شده در صورتيکه توابعي ديگر که عملکرد آنها در ارتباط با تعاريف XSLT است (نظير key ) ، در مشخصه XSLT تعريف مي گردند . اغلب XSLT و XPath در کنار يکديگر استفاده مي گردند . فراموش نکنيم که امکان استفاده از XPath بصورت مستقل و بمنظور انجام عمليات متفاوتي نظير تعريف ابرلينک هاي موجود در اسناد و .... نيز وجود دارد .

XSLT و XML

XSLT، ابزاري براي تبديل اسناد XML است . در بخش اول اين مقاله ، به ضرورت هاي تبديل اشاره گرديد. در اين بخش لازم است به بررسي ارتباط دو تکنولوژي فوق با نگرشي عميق تر ، پرداخته گردد . مفاهيم XML namespace و XML information set از جمله مواردي مي باشند که زمينه تعامل ارتباطي بين XML و XSLT را فراهم مي نمايند . در ادامه هر يک از موارد فوق توضيح داده مي شود :

XML namespace

در طراحي XSLT بر نقش مهم و کليدي XML namespace در استاندارد XML توجه جدي شده است . بنابراين زمانيکه استاندارد XSLT به يک سند XML مراجعه مي نمايد، عملا" مشخصات XML namespace نيز مورد توجه قرار گرفته شده است . مشخصات و استانداردهاي مربوط به namespace را مي توان در آدرس http://www.w3.org/TR/REC-xml-names مشاهده نمود .
Namespace داراي نقشي حياتي در XSLT است . تکنولوژي فوق ،امکان ترکيب تگ هائي از سند هاي XML مشابه با معاني متفاوت را فراهم مي نمايد . مثلا" ممکن است در يک سند XML، المان <table> نشاندهنده يک بردار دو بعدي شامل مقاير متفاوت داده بوده در صورتيکه در سند ديگر، المان <table> نشاندهنده بخشي از يک مبلمان باشد . Namespace توسط يک URI) Unique Resource Identifier) مشخص مي گردد. بدين منظور از روش هاي متفاوتي استفاده مي گردد. مثلا"در يک مدل، از آدرس مشابه يک URL معمولي استفاده مي گردد:(http://www.yourcomany.com) . در روش ديگر در برخي از اصطلاحات XML ( نظير http://www.biztalk.org/) استفاده مي گردد ، URN است . ( مثلا" urn:java:com:ic1.saxson) . جزئيات مربوط به URI مهم نبوده ولي همواره مي بايست به اين مسئله توجه گردد که نام در نظر گرفته شده منحصر بفرد باشد . يکي از روش هاي مناسب تحقق وضعيت فوق، استفاده از URL مربوط به سايت خود مي باشد . لازم به توضيح است که موضوع فوق بدين معني نخواهد بود که مي بايست بر روي وب سايت ، آيتمي بمنظور اشاره کردن به آن ، وجود داشته باشد . URI در حقيقت رشته اي است که بمنظور تمايز با تعاريف انجام شده توسط ساير افراد انتخاب مي گردد .
با توجه به اينکه رشته هاي URI اغلب طولاني و از کاراکترهاي خاصي نظير "/" استفاده مي نمايند، از آنها بصورت کامل همراه اسامي المان ها و خصلت ها استفاده نمي گردد . بدين منظور اغلب از يک نام مستعار کوچک استفاده مي شود . نام مستعار، بصورت پيشوند در کنار اسامي المان ها و خصلت ها استفاده مي شود . نام در نظرگرفته شده براي پيشوند مهم نبوده و هر نامي را مي توان انتخاب کرد . بدين ترتيب نام واقعي هر المان و يا خصلت ، از طريق URI مربوط به namespace و نام محلي آن ( آن بخش از نام که بعد از پيشوند قرار مي گيرد ) مشخص خواهد شد . مثلا" مي توان با استفاده از پيشوند xsl به namespace مربوط به http://www.w3.org/1999/XSLT/Transform اشاره کرد . براي اسامي المان ها ، مي توان يک URI پيش فرض را تعريف و آن را به اسامي المان غيرپيشوندي مرتبط نمود . namespace پيش فرض URI به اسامي خصلت هاي غير پيشوندي نسبت داده نخواهد شد . تعريف يک پيشوند namespace بصورت زير است :

xmlns:prefix = "namespace-URI"


عبارت فوق، يک پيشوند namespace را تعريف ، که مي توان آن را بهمراه نام المان مربوطه و يا نام خصلت موجود در المان استفاده کرد . namespace پيش فرض که براي المان ها استفاده مي گردد نيازي به داشتن پيشوند نداشته ( مورد فوق در رابطه با خصلت ها صدق نمي کند ) و بصورت زير تعريف مي گردد :

xmlns = "namespace-URI"


پردازش يک سند XML توسط XSLT متاثر از واقعيت هاي موجود در namespace خواهد بود .

XML information set

XSLT بمنظور انجام پردازش هاي ضروري بر روي اطلاعات موجود در يک سند XML ، طراحي و با سند کاري نخواهد داشت . اين بدان معني است که ، يک برنامه نويس XSLT قادر به دريافت يک نمايش شبه درختي از يک سند مبداء بوده که برخي از بخش هاي آن قابل مشاهد و برخي ديگر غيرقابل مشاهده خواهند بود. مثلا"مي توان اسامي و مقدار خصلت ها را مشاهده نمود ولي امکان مشاهده اينکه يک خصلت در يک کوتيشن و يا دو کوتيشن استفاده شده ، وجود نخواهد داشت . همچنين امکان مشاهده نظم و اولويت خصلت ها و نحوه نگارش آنها وجود نخواهد داشت .تلاش هاي متعددي بمنظور تعريف اطلاعات مورد نياز براي مشخص نمودن "خوش شکل " بودن يک سند XML انجام شده است . در بيست و چهارم اکتبر 2001 ،کنسرسيوم وب محموعه اطلاعات مورد نياز و تعريف شده در رابطه با يک سند XML را استاندارد و پيشنهاد داده است . مشخصات فوق را مي توان از طريق آدرس http://www.w3.org/TR/xml-infoset مشاهده کرد . اين مشخصات ، شامل مجموعه اي از تعاريف مورد نياز ساير تکنولوژي هائي است که نيازمند دستيابي به اطلاعات موجود در يک سند XML مي باشند . يک سند XML داراي مجموعه اي از اطلاعات ضروري بوده که "خوش شکل " بودن آن را تضمين و ساير تکنولوژي هاي مربوطه با مراجعه به اطلاعات فوق قادر به برداشت مناسب از يک سند XML و انجام عمليات مربوط به خود خواهند بود . مجموعه اطلاعات يک سند XML شامل تعدادي از آيتم هاي اطلاعاتي است . مجموعه اطلاعات مربوط به يک سند XML " خوش شکل " ، حداقل داراي يک آيتم اطلاعاتي است . يک آيتم اطلاعاتي بخش خاصي از يک سند XML را تشريح و شامل مجموعه اي از خصلت هاي مربوط به خود است .

XSL و CSS

چرا دو زبان ( XSL و CSS ) مختص stylesheet وجود دارد؟ منظور از XSL ، تکنولوژي XSLT بهمراه XSL Formating objects است . مهمترين هدف CSS، تبين قوانين لازم بمنظور نمايش عناصر موجود در يک سند Html مي باشد . در اين راستا امکان استفاده از CSS بهمراه سندهاي XML نيز وجود دارد . با توجه به ويژگي هاي خاص نمايش در رابطه با يک سند XML ، بکارگيري تکنولوژي CSS محدوديت هاي خاصي را بدنبال خواهد داشت . در اين زمينه مي توان به موارد زير اشاره کرد :
• CSS ، قادر به ثبت ( ذخيره ) المان هاي موجود در يک سند XML نمي باشد .
• CSS ، قادر به افزودن متن و يا تصاوير نمي باشد .
• CSS ، قادر به تصميم گيري در رابطه با اينکه چه الماني مي بايست نمايش داده شده و يا اينکه چه الماني مي بايست حذف گردد،نخواهد بود .
• CSS ، قادر به محاسبه مجموع و يا معدل دنباله اي از اعداد نمي باشد .
CSS ، صرفا" در زمانيکه ساختار سند مبداء شباهت زيادي به شکل نهائي نمايش دارد ، مفيد و قابل استفاده است .صرفنظر از محدوديت هاي فوق ، استفاده از CSS ساده بوده و منابع زيادي را بر روي ماشين بخود اختصاص نخواهد داد . ( مقرون بصرفه از بعد در اختيار گرفتن منابع ) . با توجه به عدم ذخيره سازي سند ، ضرورتي به ايجاد يک مدل شبه درختي براي نمايش و ارائه سند در حافظه نبوده و بلافاصله پس از دريافت اولين متون موجود ، فرآيند نمايش آنها آغاز مي گردد .
در برخي حالات ، مناسب است که از XSLT و CSS در کنار يکديگر استفاده نمود. مثلا" با استفاده از XSLT مي توان يک مدل قابل قبول از سند مورد نظر را که قصد نمايش نهائي آن را داريم ، ( در مدل فوق متن ها بدرستي و با اولويت مناسب مستقر شده اند) ايجاد و در ادامه با استفاده از CSS، عمليات لازم در رابطه با انتخاب نوع فونت ، اندازه فونت ، رنگ ها و ... را انجام داد . در اين راستا امکان پردازش XSLT بر روي سرويس دهنده و پردازش CSS ، بر روي سرويس گيرنده وجود خواهد داشت . يکي از مزاياي رويکرد فوق ، کاهش حجم داده هاي ارسالي از طريق خط ارتباطي بوده و بدين ترتيب مدت زمان پاسخ به کاربران، بهبود پيدا خواهد کرد .
منبع:http://article.mjsoft.ir
Add Comments
Name:
Email:
User Comments:
SecurityCode: Captcha ImageChange Image