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



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

 سه شنبه  28  دی  1395  2017  Jan.  17   Tuesday ToDay
صفحه اصلی  مقالات نکته هادايره المعارف خودآموزها | تازه ها خود آزمون ها    
  نسخه قابل چاپ  

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

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

 مديريت وب

12724

63

5

با توجه به جایگاه داده در عصر حاضر و  لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر  روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و  خدمات خود  را از طریق  سایت www.fabak.ir  به مخاطبان محترم عرضه می نماید

 

XSLT  چيست

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

در بخش اول اين مقاله، مفاهيم اوليه XSLT و ضرورت های تبديل نوع يک سند XML به نوع ديگر اشاره و از اين رهگذر جايگاه XSLT  تبين گرديد . در بخش دوم ، به بررسی جايگاه تکنولوژی XSLT در بين خانواده بزرگ تکنولوژی های مرتبط با XML خواهيم پرداخت . همانگونه که قبلا" اشاره گرديد ،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 ، بر روی سرويس گيرنده وجود خواهد داشت . يکی  از مزايای رويکرد فوق ، کاهش حجم داده های ارسالی از طريق خط ارتباطی بوده و بدين ترتيب مدت زمان پاسخ به کاربران،  بهبود پيدا خواهد کرد .
در بخش سوم اين مقاله به نحوه شکل گيری و طراحی
XSLT  اشاره  و جايگاه آن بعنوان يک زبان برنامه نويسی تبين خواهد شد .



جستجو

مقالات                 
دايره المعارف       
دوره های آموزشی


 

 

مشاهده گروه ها



              

 

 تهيه شده در شرکت سخا روش -  1382