XML چیست و چرا دارای اهمیت فراوان است ؟
● یک المان دارای خصلت است . خصلت ، شامل اطلاعات تکمیلی بوده که در بخش تگ شروع مربوط به المان بصورت : نام و مقدار قرار می گیرند . در مثال فوق 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 بصورت زیر تعریف کرد :