در بخش اول، مفاهيم اوليه تکنولوژی XML بررسی و پس از معرفی خانواده بزرگ تکنولوژی های مرتبط با XML ، سه استاندارد لازم بمنظور تعريف نوع سندهای XML تشريح گرديد ( XML ، NameSpace و XML-Schema ( و يا DTD) ) . در بخش دوم به بررسی نحوه انتشار سندهای XML خواهيم پرداخت .
Html بعنوان اسنانداردی جهت نمايش اطلاعات در عرصه وب ، سالها است که مطرح و استفاده می گردد. تگ های Html مسئوليت تبين نحوه نمايش اطلاعات را بر عهده خواهند گرفت . تکنولوژی فوق برای انجام وظايف محوله از پيش فرض های تعريف شده و ثابت (ايستا ) استفاده می نمايد . مثلا" با مشاهده تگ <B> دقيقا" مشخص شده است که می بايست چه نوع واکنشی صورت پذيرد. ( پر رنگ نمودن متن مورد نظر ) . نبايد انتظار داشته باشيم که با درج تگ <B> عملياتی غير از آنچه از قبل تعريف شده است صورت پذيرد. مفسر تگ های Html پس از انجام تفسير مربوطه ، واکنش از قبل تعريف شده ای را از خود نشان خواهد داد. مرورگرها بکمک مفسر های مربوطه همواره شرايط يکسانی را برای نمايش فراهم و شرايط خود را بر همه چيز منجمله سليقه و نقطه نظرات طراح و … ترجيج می دهند. خودخواهی در نمايش و تحميل شرايط مربوطه از نکات قابل تامل در تکنولوژی فوق است . Html محدوده و مرزی را برای تفکيک داده ها از نمايش قائل نگرديده و با تلفيق دو مقوله فوق همواره از يک روش ثابت برای نمايش داده ها استفاده می نمايد. فرض کنيد که يک فايل html داشته و بخواهيم زمانيکه برای کاربر ارسال می گردد در مرورگر مربوطه ، به دو صورت کاملا" متمايز نمايش داده شود . برای نيل به خواسته فوق چاره ای نيست مگر اينکه دو فايل مجزای html را ايجاد که هر يک دارای خروجی اختصاصی خود باشند. در مثال فوق قصد ما نمايش داده های يکسان با فرمت های متفاوت از بعد نمايش است . ما بدنبال روش و يا روش هائی هستيم که قادر به تفکيک بين داده و نمايش باشد. قطعا" Html در اين راستا گزينه ای مناسب نخواهد بود. سندهای Html از تگ هائی نظير <H1> و <P> بمنظور ايجاد ساختار و از تگ هائی نظير <I> و <Font> بمنظور ايجاد فرمت نمايش اطلاعات استفاده می نمايند . در اين راستا عملا" هيچگونه تگی که نشاندهنده نوع اطلاعات و محتويات سند باشد ، وجود ندارد .بدين ترتيب مفسر قادر به تفسير تگ های فوق صرفا" در حد نمايش اطلاعات بوده و امکان انجام هيچگونه پردازشی وجود نخواهد داشت .
حل مشکل با استفاده از XML
Xml بين دو مقوله داده و نمايش تفکيک قائل شده است. در تکنولوژی فوق بدليل عدم وجود تگ های از پيش تعريف شده برای نمايش اطلاعات می توان سناريوی مربوط به نحوه نمايش اطلاعات را بکمک يک تکنولوژی ديگر تعريف و تبين نمود. اطلاعات ذخيره شده بصورت Xml را می توان با حالات متفاوت و اعمال سناريو های متفاوت نمايش داد. برخلاف Html تکتولوژی Xml دارای اطلاعات از قبل تعريف شده و مشخصی برای نحوه نمايش اطلاعات نيست. تگ های تعريف شده در يک سند XML ، بصراحت ساختار و محتويات را ارائه خواهند داد . در اين حالت می توان نرم افزارهائی را طراحی نمود که قادر به انجام عمليات دلخواه بر روی اطلاعات موجود در سند XML باشند . هنوز يک مسئله وجود دارد : در تگ های تعريف شده در سند XML ، آيتمی وجود ندارد که به کامپيوتر اعلام نمايد به چه صورت می بايست اطلاعات مربوط به هر يک از المان ها فرمت ، تا خوانندگان قادر به خواندن آنان باشند . ما به چيزی بيشتر بمنظور تدوين استراتژی نمايش اطلاعات نياز داريم .
زبان های تعريف سبک XML
بمنظور حل مشکل اشاره شده می توان اطلاعات مربوط به نحوه نمايش اطلاعات را در يک فايل مجزا قرار داده و در ادامه با استفاده از يک پردازنده Stylesheet فايل فوق را با سند XML ترکيب نمود. Stylesheet توسط زبان های Style نوشته می گردند. هر شخص می تواند زبان اختصاصی خود را در اين زمينه پياده سازی و استفاده نمايد ولی XML با دو زبان استاندارد ارائه شده است .
CSS)Cascading Style Sheets)
CSS يک زبان Style بوده که بمنظور استفاده در سندهای Html ابداع گرديده ولی بخوبی قادر به فعاليت در کنار سندهای XML نيز می باشد . CSS مکانيزمی مناسب برای نمايش يک سند XML در مرورگر ها است . اکثر ابزارهای توليد صفحات وب دارای امکانات لازم برای توليد اسکريپت های CSS می باشند . CSS دارای دو محدوديت عمده است . اولا" ، قادر به توليد خروجی مناسب و با کيفيت بالا نمی باشد. ثانيا" ، صرفا" باعث تزئين سند شده و قابليت تغيير در دنباله اطلاعات موجود در سند را نخواهد داشت . محتويات يک سند XML در اغلب حالات دارای يک نطم متفاوت نسبت به حالتی است که قصد نمايش آنها را داريم .در اين راستا لازم است قبل از استفاده از CSS بمنظور نشر يک سند ، سند مورد نظر به حالتی که تمايل به نمايش آن را در خروجی داريم ، تبديل گردد . بدين ترتيب يک مرحله پردازش ديگر به حجم عمليات اضافه خواهد گرديد.
XSL)Extensible Style Language)
XSL يک زبان مبتنی بر XML است که دارای محدوديت های اشاره شده در رابطه با CSS نمی باشد . متاسفانه در حال حاضر ابزارهای لازم برای ايجاد اسکريپت های XSL محدود بوده و در برخی حالات ممکن است نوشتن اسکريپت ها بصورت دستی انجام گيرد . XSL دارای سه ويژگی منحصر بفرد بوده که هر کدام دارای استاندارد اختصاصی خود می باشند.
– Tranformation)XSLT) . ويژگی فوق باعث انتقال يک سند XML به فرمت ديگر می شود. فرمت فوق می تواند يک سند XML ديگر و يا يک سند DHTML باشد .
– Pointing)XPath) . ويژگی فوق امکان مشخص نمودن هر مکان در يک سند XML را فراهم می نمايد . پتانسيل فوق بعنوان هسته اساسی پردازش Style Sheet مطرح بوده و مکانيزم لازم در خصوص اعمال قوانين نمايش در خصوص اطلاعات موجود در سند XML را بدون نياز به استفاده از تگ های مربوط به Style در بطن و همراه سند ، فراهم می نمايد .
– Formating)XSL) ، فرآيندی است که بر اساس آن امکان اعمال فرمت مورد نظر به اطلاعات، بدون نياز به نوشتن دستورالعمل ها ئی که مختص يک دستگاه خروجی خاص می باشند ، را فراهم می نمايد . مثلا" می توان قوانينی مشابه : " تمام عناوين می بايست بصورت پررنگ ، فونت تايمز ، در وسط قرار گرفته ، و دور آنها يک کادر کشيده شده که دارای پهنای N باشد " را بسادگی تعريف کرد . ويژگی فوق يک تحول چشمگير نسبت به وضعيت فعلی است . در اين راستا الزامی به نوشتن قوانين متعدد برای هر يک از دستگاههائی که قصد حمايت از آنان را داريم ، وجود نخواهد داشت .
StyleSheets چگونه کار می کند ؟
مهمترين اصل تمام زبانهای XML Style ، کمک به طراحان بمنظور ايجاد قوانين ، نسبت دهی و دستورالعمل های پردازش برای انواع اطلاعات موجود در يک سند است . قوانين در يک Stylesheet در تمپليت ها قرار گرفته و به المان ها و الگوهای اطلاعاتی موجود ، اشاره خواهند کرد .در زمان اجراء ، يک نرم افزار کوچک که پردازنده StyleSheet ناميده می شود ، سند XML و يک StyleSheet را بعنوان ورودی اخذ خواهد کرد ( پردازنده Stylesheet ، درون هر برنامه ای که Stylesheet را به XML اعمال می نمايد ، نظير مرورگرها و يا ابزارهای طراحی صفحات وب وجود دارد) . پردازنده بر اساس دستورالعمل های موجود در Stylesheet عمليات مورد نظر را انجام و بر اساس تمپليت تعريف شده اطلاعات ذيربط را در آن درج و باعث ايجاد يک خروجی جديد بعنوان ماحصل کار می نمايد. روش فوق برنامه نويسی تعريفی در مقابل رويه ای ناميده می شود ( در اين حالت قوانين مربوط به نحوه نمايش تعريف شده اند، نه اينکه دستورالعمل های رويه ای در متن کدها استفاده شده باشد ) . نمونه کدهای زير ، يک تمپليت XSLT را ايجاد که در آن المان <title> در زمان ايجاد تگ های Html ، درشت نوشته شده خواهند شد .
مثال : يک تمپليت ساده XSLT |
<xsl:template match="title"> |
در تمپليت فوق ، خصلت match دارای مقدار title بوده و اين بدين معنی است که قانون می بايست به هر المان موجود در <title> که پردازنده Stylesheet آن را در سند XML پيدا خواهد کرد ، اعمال خواهد شد. قانون موجود در تمپليت به اين نکته اشاره دارد که محتويات المان <title> در سند XML ، می بايست در فايل Html که ايجاد خواهد شد ، درج و قبل از آن تگ <H1> و بدنبال آن تگ <H1/> آورده شود . فرض کنيد فايل XML مشابه زير باشد :
مثال : سند XML که فايل XSLT بر روی آن اعمال می گردد |
<title>This text will be very large</title>
نتيجه فايل HTML پس از اعمال تمپليت تعريف شده : <H1>This text will be very large</H1> |
مثال فوق نمونه ساده ای در اين زمينه بوده و در عمل می توان با استفاده از امکانات موجود، تمپليت های بمراتب پيچيده تر و قدرتمندتری را ايجاد نمود.
StyleSheet و افزايش انعطاف پذيری
با تفکيک دستورالعمل های فرمت اطلاعات از محتويات اطلاعات و در ادامه استفاده از مکانيزم Stylesheet بمنظور ترکيب آنها با يکديگر ، قابليت های فراوانی در اختيار علاقه مندان به اين تکنولوژی قرار خواهد گرفت :
می توان StyleSheet های متفاوتی را برای دستگاه های متفاوت ( مرورگرها ، PDA ، تلفن ) بر روی محيط های اطلاعاتی متفاوت ( online ، چاپ ، CD ) و با اهداف متفاوت ( نمايش مديريتی ، نمايش تکنيکی ) ايجاد نمود .
می توان يک Stylesheet ايجاد و آن را بر روی سندهای متعددی اعمال نمود.
می توان اطلاعات را ويرايش و StyleSheet آنها را يکديگر تفکيک خواهد کرد .
می توان تمام اطلاعات موجود را ، صرفا" با فشردن با يک کليد ، منتشر کرد.
خلاصه
استانداردهای اساسی در زمان انتشار سندهای XML شامل CSS و XSL/XSLT است . مهمترين نکات در رابطه با تکنولوژی های فوق ، عبارت است از :
جدا سازی محتويات از فرمت نمايش
نسبت دهی Style به ساختار
استفاده از CSS بمنظور تزئين اطلاعات
استفاده از XSLT در زمانيکه به الگوهای قدرتمندی نياز است .