# مباحث متفرقه برنامه نویسی > XML و کاربرد آن >  مقاله:XML چیست و چرا دارای اهمیت فراوان است

## babi_wd

تاکنون مقالات فراوانی در باره XML نوشته شده است، اغلب مطالب عنوان شده صرفا" بر روی یک موضوع خاص تمرکز داشته و از زاویه ای کاملا" اختصاصی و در عین حال محدود به بررسی تکنولوژی XML پرداخته و بندرت به موارد اساسی و خانواده بزرگ استاندارهای XML  اشاره شده است. در این مقاله عناصر  کلیدی مرتبط با تکنولوژی XML تشریح و ارتباط آنها تبین و جایگاه هر یک از آنها برای پیاده کنندگان و طراحان برنامه های اطلاعاتی تشریح می گردد. پس از مطالعه این  مقاله ، خوانندگان با استانداردهای کلیدی :  XML,XSL,XML-Schema,DOM,SAX,Namespace,XLink بهمراه تکنولوژی های مربوطه آشنا خواهند شد.

تعریف اصطلاحات و واژه ها

در ابتدا لازم است با کلمات تشکیل دهنده XML یعنی Extensible ، Markup و Language آشنا شویم  .Markup ، واژه ئی برای متادیتا است . متادیتا ، اطلاعاتی در رابطه با اطلاعات است . قدمت استفاده از Markup به قبل از کامپیوتر بر می گردد . مثلا" در دنیای نشر از علائم خاصی  در متن های ویرایش شده استفاده تا به پردازنده متن ( انسان و یا ماشین ) اعلام شود ، چه نوع عملیاتی را در رابطه با اطلاعات می بایست انجام دهد. HTML یکی از زبان های کلاسیک نشانه گذاری است . مثلا" با افزودن تگ <Bold> به مرورگر اعلام می شود که به چه صورت می بایست اطلاعات نمایش داده شوند . 

زبان (Language) ، به مجموعه ای از کلمات معنی دار و با مفهوم  که عده ای از آنها برای بیان خواسته ها ی خود استفاده می نمایند ،اطلاق می گردد . ( مثلا" زبان فارسی و یا انگلیسی )
با کنار هم قرار دادن دو واژه اشاره شده ، با  زبان نشانه گذاری مواجه خواهیم شد  . زبان نشانه گذاری ، به مجموعه ای از کلمات معنی دار و با مفهوم که توسط عده ای (با آگاهی لازم انتخاب ) استفاده می گردد ، اطلاق می گردد. HTML ، نمونه ای مناسب در این زمینه است . تمام افرادی که از تگ های HTML استفاده می نمایند ، بدرستی نسبت به مفهوم و جایگاه هر یک از تگ ها آشنائی داشته و با آگاهی کامل آنها را برای بیان خواسته های خود استفاده می نمایند. مثلا" مشخص است که استفاده از تگ <H1> چه نوع پیامدهائی را بدنبال خواهد داشت . تگ فوق ، توسط مولفین صفحات وب آگاهانه انتخاب می گردد و مرورگرها نیز متناسب با تعاریف  از قبل  مشخص شده ، واکنش مناسب خود را در رابطه با  نحوه نمایش انجام خواهند داد.  یک زبان بسط پذیر(Extensible)  ، زبانی است که دارای  مکانیزم لازم  برای افزودن کلمات بگونه ای  است  که توسط سایر استفاده کنندگان نیز قابل فهم باشد . در دنیای واقعی و در ارتباط با زبان های طبیعی ما هرگز شاهد چنین وضعیتی نخواهیم بود . ( افزودن یک واژه با معنی مورد نظر خود و استفاده از واژه با همان معنی توسط سایر استفاده کنندگان )  با توجه به تعاریف ارائه شده ، یک زبان نشانه گذاری بسط پذیر ، می بایست یک زبان نشانه گذاری با قابلیت افزودن کلماتی بیشتر  باشد . در عمل زبان نشانه گذاری بسط پذیر ، به سیستمی برای تعریف تمام زبا ن های نشانه گذاری با قابلیت توسعه وضعیت موجود ، اطلاق می گردد .

SGML HTML و XML

SGML)Standard Generalize Markup Language)  سرچشمه XML بوده و در سال 1988 استاندارد شده است . HTML)HyperText Markup Language) زبانی است که در ابتدا با استفاده از SGML تعریف گردید. HTML یک زبان نشانه گذاری است ، بنابراین انتظار داریم شامل مجموعه ای از تگ ها بمنظور کنترل قالب و رفتار اطلاعات  در مستندات باشد  . XML ، یک زبان نشانه گذاری مشابه HTML نمی باشد . XML ، زیرمجموعه ای از SGML است ( مکانیزمی برای تعریف زبان های نشانه گذاری ) . XML همانند SGML یک زبان نشانه گذاری بسط پذیر بوده اما بر خلاف SGML برای استفاده بر روی وب بهینه شده است .

مفاهیم اساسی

لازم است که مجددا" به این نکته مهم اشاره گردد که XML ، یک زبان نشانه گذاری نبوده و در مقابل مکانیزمی برای ایجاد زبان های نشانه گذاری اختصاصی  است . XML ، شامل مجموعه ای از استانداردها ی متنوع با کاربردهای خاص است . XML ، یک زبان نشانه گذاری نبوده و در عین حال یک زبان برنامه نویسی هم نیست . از XML برای ارائه اطلاعات استفاده شده و بمنظور پردازش اطلاعات، می بایست برنامه هائی نوشته گردد .
از XML در موارد زیر می توان استفاده کرد :
● مبادله اطلاعات بین برنامه های نامتجانس ، بنگاه های تجاری و بانک های اطلاعاتی
● امکان فعال نمودن مدلی برای  نمایش اطلاعات یکسان بر روی دستگاههای متفاوت با  اهداف و خوانندگان گوناگون
● یک قالب ذخیره سازی مناسب برای داده ها 

استانداردهای خانواده بزرگ XML

از واژه XML اغلب برای بیان یک استاندارد بین المللی استفاده می گردد . در برخی حالات واژه فوق برای بیان تمام استانداردهای مرتبط با XML نیز استفاده می گردد . اکثر کاربران با استانداردهای XML سرو کار ندارند. استانداردهای موجود اغلب توسط افرادیکه نرم افزار تولید و یا بر روی سندهای XML پردازشی را انجام می دهند ، استفاده می گردد . شناخت استانداردهای موجود در این زمینه مهم بوده و لازم است با جایگاه هر یک آشنا شویم . یکی از روش هائی که می توان استانداردهای موجود را بدرستی سازماندهی و بخاطر سپرد ، توجه و تمرکز بر اهدافی است که آنها دنبال می نمایند. جدول زیر استانداردهای موجود بهمراه اهداف و قابلیت های هر یک را نشان می دهد.

* شکل شماره (Pic1.jpg)1*

در ادامه به بررسی هر یک از استانداردهای فوق و نحوه ارتباط آنها با یکدیگر خواهیم پرداخت :

تعریف زبان های XML

با استفاده از XML ، می توان تگ های نشانه گذاری را تعریف که توسط مجموعه ای از مستندات که خصایص مشابهی را به اشتراک می گذارند ،استفاده گردد . مثلا" مجموعه ای از پیام های تجارت الکترونیکی. مورد فوق اصطلاحا" document type نامیده می گردد . ( مشابه یک کلاس در طراحی شی گراء ) . یک Document instance ، نوع خاصی از یک سند است . مثلا" یک لیست فروش خاص . در پروژه های XML ، در ابتدا Document types با توجه به اطلاعاتی که می بایست بر روی آنها عملیاتی صورت پذیرد ،  طراحی و در ادامه با ایجاد نرم افزارهای لازم ، اقدام به ایجاد و پردازش نمونه هائی از سند می گردد .  XML مجموعه ای قدرتمند از بلاک های ساختمانی  سطح پایین بمنظور طراحی Document types را ارائه می نماید.  نمونه سند زیر، شامل مجموعه ای  اطلاعات از یک بانک اطلاعاتی شخصی است .

مثال :  یک سند XML شامل اطلاعات شخصی

*شکل شماره (Pic2.jpg)2* 

سند فوق شامل چندین  بلاک ساختمان اساسی XML است .

● سند فوق ، دارای المان هائی است  که قابل مقایسه با اشیاء در سیتستم شی گراء و یا فیلد در بانک های اطلاعاتی رابطه ای است . یک المان  با تگ شروع ، آغاز و با تگ پایان ، خاتمه می یابد . بین دو تگ شروع و پایان هر نوع اطلاعاتی می تواند قرار گیرد .
●  یک المان می تواند دارای محتویات باشد. محتویات ، متن موجود بین تگ های شروع و پایان است . مثلا" Webmaster و Admin بعنوان محتویات المان در مثال فوق مشاهده می گردند.
●  یک المان دارای خصلت است . خصلت ، شامل اطلاعات تکمیلی بوده که در بخش تگ شروع مربوط به المان  بصورت : نام و مقدار قرار می گیرند  . در مثال فوق ID و office-id ، بعنوان خصلت مطرح بوده و محتویات آنها PE1 و OF1  ، بعنوان مقادیر خصلت  در نظر گرفته می شوند .
●  یک المان  می تواند تهی  (Empty)  باشد. در مثال فوق <Working-location> یک المان تهی است . معمولا" المان های تهی ، بعنوان فضا نگهدارنده هائی برای خصلت ها می باشند.
● المان ها می توانند شامل سایر المان ها باشند . ( المان های تودرتو ) . از المان های تودر تو برای ارائه اطلاعات سریال ( مجموعه ای از اشیاء ، سطرهائی از داده و یا سایر اطلاعات مورد نظر ) استفاده  گردد .
● خصلت  می تواند شامل سایر خصلت ها ویا المان ها باشد .
● محتویات المان ها و یا مقادیر خصلت ها ، می توانند بعنوان یک اشاره گر به سایر آیتم های موجود در سند نیز ایفای وظیفه نمایند.بمنظور نیل به هدف فوق XML روش های متعددی را ارائه  نموده است . مثلا" خصلت office-id با مقدار OF1 ، درون  <working-location >  به خصلت ID المان <office> اشاره می نماید. اشاره گره های فوق مشخص می نمایند که محل کار شخص PE1 در OF1 است .

بلاک های ایجاد یک سند XMl در عین سادگی ، دارای انعطاف و قدرت لازم  بمنظور حمایت از روش های  متفاوت مدل سازی اطلاعات می باشند : اشیاء ، شبکه ای ، سلسله مراتبی،  رابطه ای و ...
خوش شکل  ( Well-Formed )   و معتبر ( Valid )
با استفاده از XML ، می توان اقدام به ایجاد سندهای رسمی و غیررسمی نمود. در پروژه های کوچک و یا زمانیکه قصد نمونه سازی وجود داشته باشد ، می توان با سرعت اقدام  به ایجاد سندهای  "خوش شکل" نمود . در پروژه های بزرگ و یا پروژه هائی که شامل سیستم های متعددی می باشند، سندهای معتبر ایجاد می گردد.

قوانین یک سند خوش شکل

● وجود صرفا" یک المان ریشه
●  هر المان غیرتهی دارای تگ های شروع و پایان است .
●  تمام المان های می بایست با نظم خاصی تودرتو شده و هیچگونه تقابلی بین آنها وجود نداشته باشد.
یک سند XML زمانی معتبر است که اولا" خوش شکل بوده و ثانیا"  :
● دارای یک Schema ( پیش نویس ) و یا DTD)Document Type Definition) باشد.
● سازگار با قوانین موجود در Schema

پیش نویس ها (Schemas) باعث اعتبار و صحت یک سند XML می گردند.
واژه Schema ، به قوانینی اطلاق می گردد که به مجموعه ای از سندهای با ساختار مشابه ، نسبت داده می شود . واژه فوق مختص XML نبوده و در سایر موارد  از واژه فوق نیز استفاده می گردد . در رابطه با XML قوانین موجود به موارد زیر اشاره خواهند داشت :

●  از چه المان ها و خصلت هائی استفاده شده است ؟
● نحوه استقرار المان ها و خصلت ها به چه صورت است ؟
● هر یک از المان ها و یا خصلت ها شامل چه نوع اطلاعاتی می توانند باشند .

XML برای تعریف پیش نویس ها (Schemas) از دو زبان استفاده می نماید : DTD و XML-Schema
DTD ، مکانیزمی برای تعریف پیش نویس ها بوده که در ابتدا بمنظور استفاده در SGML طراحی و در ادامه XML نیز از آن استفاده کرد . محوریت DTD بر سند استوار بوده و دارای امکانات و ویژگی های لازم نظیر : نوع داده ها ، دامنه ها و ... نمی باشد. گرامر استفاده شده در DTD  کاملا" اختصاصی بوده و ابزارهای اندکی بمنظور پردازش آنها وجود دارد .

XML-Schema ، یک استاندارد جدید بوده که مختص XML طراحی شده است . گرامر استفاده شده مبتنی بر XML است . تکنولوژی فوق بدرستی محدودیت های DTD را برطرف نموده و اکثر ابزارهای تولید شده توسط عرضه کنندگان معتبر ، مجهز به تکنولوژی فوق می باشند. به افرادیکه جدیدا" به دنیای XML وارد شده اند ، توصیه می گردد که در صورت امکان گرامر DTD را فراموش و خود را با استاندارد XML-Schema وفق نمایند .

چه زمان اعتبار لازم است ؟

سندهای "خوش شکل" ، بسرعت آماده شده و بسادگی استفاده می گردند. تاکنون نرم افزارهای متعددی نوشته شده که در آنها از سندهای " خوش شکل" ، استفاده شده است . با این اوصاف ،چه زمان می بایست از یک پیش نویس (Schema) رسمی استفاده کرد ؟ در پاسخ به سوال فوق می توان گفت که " پیش نویس ها باعث ارائه صلاحیت  لازم بمنظور  پردازش های مبتنی بر داده ها می باشند . بدین ترتیب و در زمانیکه اطلاعات موجود در یک سند XML ، توسط یک پردازنده Schema ، پردازش می گردد، اطلاعاتی حذف و یا نادیده گرفته نخواهند  شد. در این راستا از پیش نویس های نوشته شده بمنظور : بررسی صحت محتویات، مقادیر پیش فرض برای المان ها ، ارائه کمک در زمان ویرایش یک سند XML ، ترجمه از یک فرمت XML به فرمت دیگر ، استفاده می گردد .
در این راستا ، می توان کدهائی را نوشت که تمام عملیات فوق را انجام دهند ولی کدهای نوشته شده محدود به یک نوع  سند خاص خواهند بود  . اطلاعات موجود در پیش نویس این امکان را فراهم می آورند ، که با نوشتن یک پردازنده پیش نویس از آن در سندهای متفاوت بدون نیاز به برنامه نویسی مجدد استفاده کرد . سندهای شامل پیش نویس ، با یک فرمت استاندارد ایجاد و بسادگی امکان اشتراک آنها فراهم می گردد .

Namespace مشکل تصادم  اسامی را برطرف می نمایند

در زمان عملیات بر روی سندها و برنامه های مبتنی بر XML ، بدفعات نیاز به ترکیب دو سند مجزا و ایجاد سند جدید احساس خواهد شد. با انجام هدف فوق، با چالش های جدی در رابطه با تصادم (Conflict) اسامی برخورد خواهیم کرد : المان هائی که دارای تگ های یکسان ولی معانی متفاوت می باشند .

مثلا" فرض نمائید ، بخواهیم سندی که دارای یک تگ <title> ( تگ فوق به عنوان شغلی یک فرد اشاره دارد ) است را با سند دیگر که او هم دارای یک تگ <title> ( تگ فوق به عنوان یک فیلم اشاره دارد ) است را بایکدیگر ترکیب نمائیم . زمانیکه تگ های فوق در سند های مجزا بوده  و یا حتی در یک سند یکسان قرار داشته باشند با مشکلاتی مواجه نخواهیم شد ( در این حالت قصد پردازش اتوماتیک بر روی المان های <title> را نداریم ) مشکل از زمانی شروع می گردد ، که کدهائی بمنظور پردازش اتوماتیک بر روی المان های <title> نوشته گردد . در چنین حالتی لازم است از نوع تگ آگاهی لازم را پیدا کرد .

بمنظور حل مشکل فوق از XML Namespace استفاده می گردد . Namespace ،مکانیزمی است که  بهمراه یک سند تعریف ، تا ارتباط مفهمومی مجموعه ای از عناصر با یکدیگر را مشخص نماید. بدین ترتیب برای هر المان محدوده و یا فضائی تعریف و بر همین اساس با آنها برخورد عملیاتی خواهد شد. برای هر Namespace می توان یک شناسه تعریف و در ادامه با استفاده از شناسه تعریف شده بصورت پیشوند در کنار نام المان تکلیف عملیاتی  المان را مشخص کرد. مثلا" می توان یک NameSpace بصورت زیر تعریف کرد :


Xmlns:Tehran=www.yourc ompany.com/test1
در ادامه می توان در سند مربوطه ، بصورت :<Tehran:Test1>  به آن مراجعه کرد . بدین ترتیب شما و یا برنامه مورد نظر ، برای پردازش  آگاهی لازم  را پیدا خواهد کرد . ( تگ مورد نظر از Namespace تعریف شده مشتق می گردد ) 
خلاصه
در این مقاله به سه استاندارد لازم بمنظور تعریف نوع سندهای XML اشاره گردید :  XML   ،  NameSpace و XML-Schema ( و یا DTD) . بمنظور تعریف یک نوع سند XML ، عملیات زیر می بایست دنبال گردد :
●  مدل سازی اطلاعات مورد نطر
●  نمونه سازی با استفاده از سندهای XML  "خوش شکل "
● در صورت نیاز تعریف یک پیش نویس (Schema) رسمی
● استفاده از Namespace بمنظور ترکیب اطلاعات از منابع متفاوت

----------


## babi_wd

ادامه دارد....(بخش  2و 3)
چرا نمیشه وسط متن عکس گذاشت؟
حتما باید از یه جا لینک بدیم

----------


## mehrzad007

دستت درد نکنه . کاش اینو به صورت PDF می ذاشتی.

----------


## babi_wd

در آخرین پست PDF هم میزارم.الان نمیرسم

----------


## babi_wd

در بخش اول،  مفاهیم اولیه تکنولوژی 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  ، درشت  نوشته شده خواهند شد . 

*شکل شماره 3(Pic3.jpg)*

در تمپلیت فوق ، خصلت match  دارای مقدار title بوده و این بدین معنی است که قانون می بایست به هر المان موجود در <title>  که پردازنده Stylesheet آن را در سند XML پیدا خواهد کرد ، اعمال خواهد شد. قانون موجود در تمپلیت به این نکته اشاره دارد که محتویات المان <title> در سند XML ، می بایست در فایل Html که ایجاد خواهد شد  ، درج و  قبل از آن تگ <H1> و بدنبال آن تگ <H1/>  آورده شود  . فرض کنید فایل XML مشابه زیر باشد : 

*شکل شماره 4(Pic4.jpg)*

مثال فوق نمونه ساده ای  در این زمینه بوده و در عمل می توان با استفاده از امکانات موجود، تمپلیت های بمراتب پیچیده تر و قدرتمندتری را ایجاد نمود. 

StyleSheet و  افزایش انعطاف پذیری 

با تفکیک دستورالعمل های فرمت اطلاعات از محتویات اطلاعات و در ادامه استفاده از مکانیزم Stylesheet بمنظور ترکیب آنها  با یکدیگر ، قابلیت های فراوانی در اختیار علاقه مندان به این تکنولوژی قرار خواهد گرفت :

•	می توان StyleSheet های متفاوتی را برای دستگاه های متفاوت ( مرورگرها ، PDA  ، تلفن ) بر روی محیط های اطلاعاتی متفاوت ( online  ، چاپ ، CD ) و با اهداف متفاوت ( نمایش مدیریتی ، نمایش تکنیکی ) ایجاد نمود . 
•	می توان یک Stylesheet ایجاد و آن را بر روی سندهای متعددی اعمال نمود. 
•	می توان اطلاعات را ویرایش و StyleSheet آنها را یکدیگر تفکیک خواهد کرد . 
•	می توان تمام اطلاعات موجود را ، صرفا" با فشردن  با یک کلید ، منتشر کرد. 

خلاصه 

استانداردهای اساسی در زمان انتشار  سندهای XML  شامل CSS و XSL/XSLT است  . مهمترین نکات در رابطه با تکنولوژی های فوق ، عبارت است از :
•	جدا سازی محتویات از فرمت نمایش 
•	نسبت دهی Style به ساختار  
•	استفاده از CSS بمنظور تزئین  اطلاعات 
•	استفاده از XSLT در زمانیکه به الگوهای قدرتمندی نیاز است .

----------


## babi_wd

در بخش اول،  مفاهیم اولیه تکنولوژی XML  بررسی و پس از معرفی خانواده بزرگ تکنولوژی های مرتبط با XML  ، سه استاندارد لازم بمنظور تعریف نوع سندهای XML تشریح گردید  (  XML   ،  NameSpace و XML-Schema ( و یا DTD)  ) .  در بخش دوم به بررسی  نحوه انتشار سندهای XML  اشاره گردید . در این بخش ،نحوه پردازش سندهای XML و دلایل توجه جدی به این تکنولوژی ، تشریح می گردد . 

پیاده کنندگان نرم افزار در زمان استفاده از XML علاقه مند به  کار در دو سطح متفاوت می باشند : پردازش های سطح پائین و پردازش های سطح بالا. در پردازش های سطح پائین ، تمام سند خوانده شده و به بخش های مورد نظر برای پردازش ، تقسیم می گردد . در پردازش های سطح بالا ، از ابزارهای لازم برای انجام فعالیت های سطح پائین استفاده شده و در برخی حالات نیز لازم است که کدها و اسکریپت های  خاصی نوشته شده تا پردازش های لازم بر روی یک سند XML صورت پذیرد . برای پردازش های سطح پائین ، می بایست از استانداردهای موجود در رابطه با Parsing استفاده کرد . در پردازش های سطح بالا ، می بایست از استاندارد تبدیل  XML استفاده کرد . 

پارسر (Parser)  

هر پردازنده XML (  مرورگرها ، پردازنده های Schema ،  ویرایشگرها ، پردازنده های Stylesheet ) دارای یک پارسر می باشند .  پارسر یک سند XML را خوانده و آن را به بخش های متفاوت تقسیم و در حافظه مستقر می نماید .( معیار تقسیم بندی می تواند بر اساس المان و یا خصلت باشد ) . پس از استقرار بخش های متفاوت یک سند XML در حافظه ، امکان انجام عملیات  بر روی هر یک از بخش های موجود  توسط پردازنده  فراهم می گردد . ( نظیر داده های موجود در یک بانک اطلاعاتی ) : 

•	انتقال یک سند از یک فرمت به فرمت دیگر 
•	بازسازی مجدد یک سند XML با توجه به اولویت های اطلاعاتی مورد نظر  
•	اعمال فرمت های دلخواه بمنظور چاپ و یا نمایش 
اکثر پیاده کنندگان نرم افزار های مبتنی بر XML ، ضرورتی به فراگیری جزئیات مربوط به نحوه پارسینگ ، نداشته و می توانند آن  را به ابزارهای ارائه شده توسط تولیدکنندگان واگذار نمایند . (در محیط های پیاده سازی امکانات مربوطه در این زمینه پیش بینی می گردد) . با مطالعه پارسر های XML ، شناخت مناسبی نسبت به امکانات و ویژگی های موجود، ایجاد خواهد شد .  XML دارای دو اینترفیس برنامه نویسی DOM و SAX است . 

 DOM)Document Object Model) بر خلاف نام خود یک مدل واقعی نیست . DOM یک API ( اینترفیس برنامه نویسی ) برای نوشتن کدهای لازم بمنظور انجام عملیات دلخواه بر روی بخش هائی از یک سند XML پس از استقرار آن در حافظه است . رفتار استاندارد فوق  با اطلاعات موجود در یک سند XML  ، استفاده از یک ساختار درختی برای ذخیره سازی اطلاعات ، بهمراه دستوراتی برای حرکت در طول درخت و بازیابی اطلاعات مورد نظر است . دستورات بر اساس یک مدل شی گراء عمل می نمایند. مهمترین مزیت پارسرهای سازگار با DOM ، ارائه استانداردهای لازم API بمنظور انجام عملیات دلخواه در رابطه با اطلاعات است .  

SAX)Simple API for XML) ، بر اساس یک مدل شی گراء رفتار نمی نماید. در اینترفیس فوق ، از مجموعه ای  رویداد استفاده می گردد . رویدادها،  پس از خواند ن یک سند XML توسط پارسر های سازگار با SAX ، با توجه به شرایط مربوطه ، فعال خواهند شد. یکی از دلایل مطرح شدن SAX با توجه به وجود DOM ، عدم امکان استفاده از دستورات DOM تا زمانی است که تمام سند در حافظه مستقر گردد . استفاده و بکارگیری از دستورات DOM صرفا" پس از استقرار تمام سند XML در حافظه امکان پذیر خواهد بود . بدیهی است با توجه به رویکرد عملیاتی فوق ، حجم بالای سندهای  XML می تواند باعث بروز مسائل و مشکلاتی در این رابطه گردد . مثلا" بمنظور دستیابی به یک المان خاص می بایست در انتظار استقرار تمام سند XML در حافظه گردید .( از دست دادن زمان و مصرف بیهوده حافظه ) . با استفاده از تکنولوژی SAX می توان بسرعت یک سند را فعال  و در ادامه المان های موجود  را  بمنظور استفاده از محتویات مورد نظر جستجو کرد  . 
 قابلیت  SAX ،  یک پیش نیاز  برای  پارسرهای  سازگار با DOM است ، چون یک پارسر DOM می بایست در ابتدا سند را خوانده و در ادامه از رویدادهای مشابه SAX بمنظورتشخیص  المان ها استفاده و آنها را در حافظه ایجاد نماید . بعنوان جمع بندی می بایست به این نکته اشاره گردد که اغلب پارسرها امکانات مربوط به DOM و SAX را حمایت کرده و می توان از پارسر های مشابه بمنظور انجام هر یک از حالات پردازش استفاده کرد .

Transformation  XSLT ( تبدیل )  

تبدیل  ، فرآیندی است که با استفاده از XSLT ، یک سند XML  به یک فرمت دیگر ( XML و یا غیر XML) تغییر می گردد .  تبدیلات، بمنزله  بلاک های ایجاد برنامه های مبتنی بر XML  مطرح می باشند. با استفاده از تبدیلات ، امکان انجام عملیات دلخواه در رابطه با اطلاعات بصورت  بهینه فراهم می گردد .   

یک XSLT stylsheet ، شامل تمپلیت ها و الگوها است . تمپلیت ساختار تبدیل مورد نیاز را مشخص  و الگوها ، تمپلیت را به ساختار موجود در سند ، نسبت دهی خواهند کرد. مدل پردازش XSLT  ،  بصورت تعریفی و خود بازگشتی است . پردازنده StyleSheet ، بر روی سند XML پارس شده ، حرکت و در هر گره ، تمپلیت را بکارگرفته تا بر اساس آن الگوهائی که واجد شرایط هستند، انتخاب گردند. دستورالعمل های موجود در تمپلیت ها  ،قادر به مرتب سازی ، سازماندهی مجدد و سایر عملیات مورد نیاز بمنظور ایجاد خروجی مورد نظر می باشند .  برنامه زیر یک تمپلیت ساده را   نشان می دهد . فرض کنید سند XML دارای دو المان <author> مشابه زیر باشد .

*شکل شماره 5((Pic5.Jpg*

فرض کنید StyleSheet ، شامل تمپلیتی با الگوی مورد نظر برای تطبیق المان های <author>  بصورت زیر باشد :

*شکل شماره 6(Pic6.Jpg)*

زمانیکه پردازنده stylesheet بر روی سند حرکت می نماید ، هر زمان که با یک المان جدید برخورد نماید  ، بررسی آن بمنظور تطبیق با شرایط موجود در تمپلیت انجام خواهد شد.  پردازنده در مواجه با المان <author>  متوجه می گردد ، که یک مورد مطابقت وجود دارد . بدین ترتیب با تاکید بر تمپلیت تعریف شده  ، خروجی مورد نظر ایجاد خواهد شد. بدین ترتیب خروجی بصورت زیر خواهد بود . ( ترکیب عبارات موجود در تمپلیت ، دو المان <xsl:value-of>  بهمراه تگ </BR> ) . 
 Irani, Ali<BR/>Tehrani, Reza<BR/>
 پردازش XSLT  ، یک مدل قدرتمند و بسیار مفید برای استفاده در برنامه های XML B2B  است . در برنامه های فوق ،  تبدیلات متعددی  صورت می پذیرد ( از یک فرمت XSLT به فرمت دیگر) . XSLT  ابزاری مناسب  بمنظور انجام عملیات فوق است . 

خلاصه  
 استانداردهای اساسی بمنظور پردازش سندهای XML  شامل DOM , SAX و XSLT می باشد. 
•	پارسر های استاندارد شده امکان مبادله پردازنده های XML  را فراهم می نمایند. 
•	تبدیلات ، بعنوان بلاک های ایجاد برنامه های مبتنی بر XML مطرح می باشند .

تاکنون با XML و استانداردهای اصلی آن آشنا شدیم. در ادامه ، چهار دلیل اهمیت تکنولوژی XML اشاره تا تاکیدی  مجدد بر تاثیر تکنولوژی فوق در  روش های  طراحی و پیاده سازی سیستم های اطلاعاتی باشد . تاثیری که فرآیند طراحی و پیاده سازی سیستم های نرم افزاری را دچار تحولات فراوانی خواهد کرد.

دلیل اول : مبادله اطلاعاتی فراگیر  

مبادله اطلاعاتی فراگیر ، فرایندی بمنظور تبادل اطلاعات بین سیستم ها ویا عناصر با استفاده از فرمت های از قبل تعریف شده پیام ، بدون آگاهی از جزئیات سایر سیستم ها است . مفهوم تعریف فوق بدین منزله است که : " اگر شما یک پیام  مشابه این را به آدرس من ارسال نمائی ،من نیز یک پیام مشابه آن را  به آدرس شما ارسال خواهم کرد ." بدین ترتیب مشکلی که طراحان و برنامه نویسان سالیان متمادی است با آن درگیر بوده  و همواره بدنبال حل  این مسئله مهم بوده اند ، برطرف می گردد .سیستم ها  با استفاده از یک فرمت قابل قبول اطلاعاتی ، بیکدیگر مرتبط خواهند شد . پیام های مبتنی بر XML  ، مستقل از نرم افزار پردازش کننده بوده و بدین ترتیب می توان سیستم های بیشتری را در شبکه درگیر و ماهیت این نوع از سیستم ها را تغییر داد .( بدون نیاز به اعمال تغییر در مکانیزم پیام ها ) 

XML ، بسرعت و در مقیاسی گسترده  بعنوان گزینه ای مناسب برای فعالیت های :  B2B ، پیام  شی به شی ، مطرح شده است . در سراسر دنیا ، سازمانهائی که نیازمند مبادله اطلاعاتی با یکدیگر می باشند ، بهم ملحق وکمیته های تجاری را ایجاد نموده اند .  در کمیته های فوق زبانهای XML تعریف و بر اساس آنها  داده ها  مبادله می گردند . در چنین مواردی Schema مربوطه ، بمنظور نشر بر روی وب سایت های اصلی و مرکزی قرار گرفته است . برای آگاهی بیشتر در رابطه با مفاهیم و کمیته های مربوطه می توانید سایت های http://www.xml.org و http://www.biztalk.org را مشاهده نمائید .

دلیل دوم : تشریح خودکار داده ها 

یک سند XML  شامل اسامی مربوط به  اشیاء/ ستون / المان ها بوده و بصورت اختیاری ممکن است شامل Schema  و یا مراجعه به آن باشد. بدین ترتیب یک سند XML بنوعی خود را تشریح می نماید ، روشی که تاکنون در این سطح استفاده نشده است . بدین ترتیب امکان پردازش های سمت سرویس گیرنده بر روی سندهای XML فراهم خواهد شد. زمانیکه یک سند XML برای یک دستگاه ارسال می گردد ، نرم افزار موجود بر روی دستگاه قادر به نمایش و پردازش اطلاعات خواهد بود . با ترکیب داده هائی که خود را تشریح می نمایند و پردازش های سمت سرویس گیرنده ، می توان برنامه های قدرتمندی را ایجاد و شاهد نسل جدیدی از سندهای هوشمند با  برنامه نویسی اندک ، باشیم . 

دلیل سوم : استاندارد جهانی  

XML  یک استاندارد جهانی بوده  و بدین ترتیب صلابت و گسترش آن تضمین شده است . بدین ترتیب می توان :

•	بسادگی اطلاعات مورد نظر را بین سیستم های ناهمگن مبادله کرد . 
•	 ابزارهای تولیده شده  رقابتی را  بر اساس نیاز انتخاب کرد .
•	روتین هائی را با قابلیت استفاده مجدد ایجاد کرد . 
•	ویژگی جدیدی را  بدون درگیر شدن با مسائل سازگاری  اضافه کرد .
دلیل چهارم : ابزاری مناسب برای ارائه اطلاعات  
دلیل نهائی در رابطه با اهمیت XML  ، قابلیت استفاده XML برای انواع متفاوت اطلاعات با اهداف گوناگون است . XML در ابتدا از SGML بمنظور استفاده در وب طراحی گردید ولی هم اکنون ، زمینه استفاده از آن در وب و سایر برنامه ها ئی که تحت وب نمی باشند ، نیز فراهم شده است .  مبادله اطلاعات ، پیوستگی سیستم ها   ،   پردازش های توزیع شده  ،  ذخیره سازی محلی متادیتا   ،  نمونه هائی از میدان وسیع استفاده از XML می باشند . علاوه بر موارد فوق ، لازم است به این نکته مهم نیز توجه گردد که XML  ، امکان استفاده از Unicode را نیز فراهم می نماید (  بیش از  64.000  کارکتر ) .
http://www.srco.ir/

----------


## babi_wd

اینم PDF مطالب
امیدوارم مورد پسند قرار بگیره

----------


## benyamin_kb

دستت درد نکنه خیلی کامل و جامع بود

----------


## ariadneh

مرسی خیلی عالی بود با این حال من به مطالب بیشتر و با منابع و مراجع معتبری مثل paper و مجلات معتبر scientific برای سمینارم نیاز دارم و زمان محدودی تا اراﺋم مونده و عمده کارم باید در ارتباط با پژوهش باشه واقعا ممنون میشم اگه تو این زمینه کمکم کنید..

----------


## ehsan_ehp

مرسی از مطالب مفیدتون.

----------


## BPROD_ASLANI

ممنون از مطلب مفیدتون

----------


## eshpilen

مقاله های خوبیه.
جمع بندی قابل توجهی هست.
ولی بنظرم آدم باید از قبل درمورد هرکدوم از استانداردها و فناوریهای ذکر شده مطالعاتی درحد سینتاکس و طرز کار داشته بوده باشه تا همهء مطلب رو بگیره و یک تصویر کلی بدست بیاره.
برای منکه خیلی خوب بود چون همهء آموخته های قبلیم بیادم آمد و تصویر کلی در ذهنم تشکیل شد و خیلی از ابهاماتی که داشتم برطرف شد.

----------


## dreamyworld

مرسی خیلی مفید بود...

----------


## ensiesafdari

چرا pdf نيست

----------


## kianmehr21

بسيار عالي بود

----------


## farzad2537

فایل XML کجاست؟؟

----------

