XSLT چيست ؟ (2)

آغاز حيات XSLT ، از يک زبان بزرگتر با نام XSL همراه بوده است . همانگونه که از نام زبان فوق مشخص است ، XSL ، با هدف تعريف نحوه فرمت سندهای XML ، بمنظور نمايش بر روی صفحه نمايشگر، کاغذ و ساير موارد ، طراحی و عرضه شده است . ارائه يک سند XML مستلزم تحقق دو فرآيند متمايز است . در اولين فرآيند، می بايست با انجام عمليات متفاوت نظير انتخاب ، گروه بندی و ذخيره المان ها ، يک تبديل ساختاری در سند ايجاد گردد . در دومين فرآيند ، می بايست
دوشنبه، 12 بهمن 1388
تخمین زمان مطالعه:
موارد بیشتر برای شما
XSLT چيست ؟ (2)
XSLT چيست ؟ (2)
XSLT چيست ؟ (2)






بررسی جايگاه تکنولوژی 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




ارسال نظر
با تشکر، نظر شما پس از بررسی و تایید در سایت قرار خواهد گرفت.
متاسفانه در برقراری ارتباط خطایی رخ داده. لطفاً دوباره تلاش کنید.
مقالات مرتبط