آموزش XML و نحوه کاربرد

اگر با HTML که مخفف کلمات Hypet Text Meta Language است آشنا باشید و در مرورگر وب خود , یک صفحه ی وب را باز کرده و سپس دستور view Source را از منوهای مرورگر انتخاب کرده یا دکمه Cntrl به همراه U را فشار بدید تگ های HTML زیادی را می بینید از جمله <title> , <body> و…

یک سند HTML محتوای یک صفحه وب را مشخص می کند , یک سند XML تا حدی مشابه با یک سند HTML است اما با یکدیگر تفاوت های زیادی دارند که دوتا از مهمترین تفاوت های HTML و XML  را می توان به صورت زیر بیان کرد:

  1. یک فایل XML تنها ظاهر و چیدمان را توصیف نمی کند بلکه اغلب فایل های XML برای توصیف داده ها به کار می روند.
  2. قوانین خاصی چیزی که می توانید در یک سند HTML یا XML بنویسید را توصیف می کنند , قوانین برای HTML بسیار آسان گیر هستند اما قوانین XML خیلی سخت گیر هستند به گونه ای که در یک سند HTML یک کاراکتر یا کلمه گم شده اغلب چشم پوشی می شود اما در XML یک کاراکتر یا کلمه گم شده می تواند کل برنامه ی نوشته شده توسط شما را خراب کند.

تعریف رسمی برای بخش های مختلف یک سند XML می تواند خیلی پیچیده باشد اما می توانید یک سند XML را به صورت دسته ای از عناصر در نظر بگیرید که هر عنصر دارای یک یا دو تگ است! در ادامه به توضیح درباره ی ویژگی های تگ ها و عناصر می پردازیم.

تگ ها و عناصر:

مفهوم تگ: یک تگ (tag) متنی است که توسط علامت های زاویه دار (<>) احاطه شده است. (البته هر متنی که داخل علامت های زاویه دار باشد تگ محسوب نمی شود بلکه باید از قوانین خاصی پیروی کند) , وقتی متن یک سند XML از تمام قوانین گرامری صحیح XML تبعیت کند , به آن یک سند خوش فرم XML گفته می شود.

یک سند XML می تواند دارای سه نوع تگ باشد:

  • یک تگ شروع کننده که تگ باز نیز نام دارد, با یک علامت زاویه دار باز و یک نام شروع می شود. آخرین کاراکتر یک تگ باز , یک براکت زاویه دار بسته (<) است.
  • یک تگ انتهایی که تگ بسته نیز نام دارد , یک علامت زاویه دار باز است که بعد از آن یک اسلش (/) و سپس یک نام ظاهر می شود. آخرین کاراکتر یک تگ انتهایی یک براکت زاویه دار بسته (<) است.
  • یک تگ عنصر خالی (empty element) با یک علامت زاویه دار باز و بعد از آن یک نام شروع می شود, دو کاراکتر آخر این تگ یک اسلش و یک علامت زاویه دار بسته هستند.

به مثال های زیر دقت کنید:

در مثال بالا اولین خط یک تگ شروع کننده را نشان می دهد و خط دوم نیز یک تگ انتهایی را نمایش می دهد و در آخر یک تگ عنصر خالی را در خط سوم میتونیم ببینیم.

عنصر در XML : یک عنصر (Element) در XML دارای هردوی تگ های شروع و انتهایی یا اینکه یک تگ عنصر خالی است , به مثال زیر دقت کنید:

در مثال بالا به ترتیب دو عنصر در خطوط یک و دو ایجاد شده اند.

نام های عناصر در XML ثابت نیستند , در یک سند HTML یک عنصر b متن را به صورت تو پر یا Bold می کند به مثال زیر دقت کنید:

در مثال بالا با استفاده از دستور b , متن my personal web به صورت my personal web در مرورگر شما ظاهر خواهد شد.

در یک سند HTML نام یک عنصر b ثابت است اما در اسناد XML نام هایی مانند application , activity و … بنا به نیاز ما ایجاد می شوند و لزومی ندارد که ثابت باشند. یک سند XML دارای نام عناصر مخصوص به خود است و این نام ها می توانند از نام های اسناد XML دیگر متفاوت باشند. می توانید سند XML خود را به صورت زیر ایجاد کنید:

اگر هدف شما ذخیره اطلاعاتی در باره گربه ها باشد سند XML بالا دارای ساختار و نام های مناسبی است.

متن درون یک سند XML به بزرگی و کوچکی حروف حساس است. یک عنصر با نام APPLICATION دارای نام یکسانی با یک عنصر دیگر با نام application نیست.

یک سند XML غیر خالی می تواند حاولی محتویات باشد , محتویات چیزهایی بین تگ شروع و تگ انتهایی هستند , محتویات یک عنصر می تواند عناصر دیگر نیز باشند و یا اینکه محتویات آن به صورت متن عادی باشد , به مثال زیر دقت کنید:

در مثال بالا عنصر resources دارای محتویاتی است که دو عنصر string هستند. و همچنین محتویات عنصرهای string رشته های متنی است.

حتی می توانید محتویات ترکیبی داشته باشید , به عنون مثال بین تگ های شروع و انتهای یک عنصر می توانید متن عادی داشته باشید که بعد از آن یک یا دو عنصر ظاهر شده و بعد از آن ها نیز دوباره یک متن عادی ظاهر شده باشد.

  • در بعضی موارد دو یا تعداد بیشتری عنصر می توانند دارای نام یکسانی باشند.
  • عناصر یا درون هم تودرتو شده اند یا اصلا وارد هم نمی شوند.
  • هر سند XML حاوی یک عنصر است که بقیه عناصر درون آن قرار میگیرند , عنصر منفردی که تمام عناصر دیگر در آن قرار می گیرند, عنصر ریشه یا Root نام دارد.
  • هر عنصر میتواند دارای خاصیت باشد که هر خاصیت به صورت یک جفت مقدار = نام تعریف می شود و مقدار درون کوتیشین مارک قرار میگیرد. به مثال زیر دقت کنید:

  • خاصیت ها نمی توانند در تگ پایانی قرار بگیرند.
  • یک سند XML با یک معرفی شروع می شود که این معرفی می تواند به صورت زیر انجام شود:

علامت سوال باعث مشخص شدن یک معرفی و تمایز آن از یک تگ عادی XML می شود. این معرفی می گوید که سند از نوع XML است و از نسخه ۱٫۰ استفاده می کند و رشته های متنی استفاده شده درون XML از استاندارد uft-8 استفاده می کنند که در این حالت فارسی نیز ساپورت خواهد شد.

  • یک توضیح (comment) به صورت مثال زیر ایجاد خواهد شد:

در مثال بالا متن this is an example یک توضیح محسوب می شود , توضیحات برای خوانده شدن فقط برای انسان طراحی شده اند اما برنامه هایی که اسناد را به عنوان ورودی دریافت می کنند توضیحات را نخوانده و روی آنها کار انجام نمی دهند (کامنت ها برای برنامه ها بی ارزش هستند).

یک سند XML می تواند حاوی دستورالعمل های پردازش باشد , یک دستورالعمل پردازش خیلی شبیه به معرفی XML یک سند است , به مثال زیر دقت کنید:

دقت کنید که معرفی یک سند XML یک دستور پردازش نیست , هر دستورالعمل پردازش دارای یک نام است اما بعد از نام دستورالعمل هر چیزی می تواند وارد شود. دستورالعمل این مثال دارای نام chapter بوده که بعد از آن متنی می آید. قسمتی از این متن شبیه به خاصیت یک تگ شروع است اما بقیه متن شبیه به توضیحات هستند.

می توانید تقریبا هر چیزی را درون یک دستورالعمل پردازش قرار دهید , اغلب نرم افزارهایی که سند XML را در ورودی می گیرند از این دستورالعمل های  پردازش چشم پوشی می کنند اما برنامه های خاصی هستند که این دستور العمل ها را خوانده و اطلاعاتی را از این دستورالعمل ها دریافت میکنند.

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

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

به اشتراک بگذارید:Email this to someoneShare on FacebookTweet about this on TwitterShare on Google+Digg thisShare on LinkedInPin on PinterestShare on StumbleUponFlattr the authorShare on RedditBuffer this pageShare on TumblrPrint this pageShare on YummlyShare on VK

می‌خواهید دیدگاهتان را بیان کنید؟