XML مخفف زبان نشانهگذاري قابل گسترش ميباشد. اين زبان يك زبان نشانهگذاري جديد است كه توسط كنسرسيوم وب در سال 1997 براي غلبه بر محدوديتهاي زبان HTML بوجود آمده است. كنسرسيوم وب سازماني است كه مسئول نگهداري استاندارهاي موجود در زمينه وب ميباشد كه از مهمترين اين استاندارها ميتوان به HTML اشاره كرد.
تفاوت اصلي XML با HTML در اين است كه XML سعي دارد دادهها را طوري نشانهگذاري كند كه معناي آنها حفظ شود و در حاليكه HTML دادهها را طوري نشانهگذاري ميكند كه قابل نمايش براي مرورگرها باشد. در واقع تاكيد XML بر روي معناي دادههاست در حاليكه تاكيد HTML بر نمايش داده ميباشد. به منظور حفظ معناي دادهها XML ابر داده(Metadata ) توصيف كننده دادهها را نيز همراه آنها ذخيره ميكند.
XML زير مجموعه ساده شدهاي از زبان SGML ميباشد. SGML يك زبان عمومي و پيچيده براي نشانهگذاري دادههاست كه در دهه 80 بوجود آمد و پدر زبانهاي نشانهگذاري محسوب ميشود. قابليتهاي زياد اين زبان آن را بيش از اندازه پيچيده كرده است بطوري كه كنسرسيوم وب آن را بعنوان جانشين HTML مناسب ندانسته و تصميم گرفت زير مجموعه ساده شدهاي از آن را با نام XML جانشين HTML كند. XML را در واقع يك ابر زبان ناميده ميشود چرا كه كاربر بسته به نيازهايي كه دارد ميتواند با استفاده از آن زبان نشانهگذاري جديدي براي نشانهگذاري دادههايش ايجاد كند.
XML همچنين قادر است ساختار دادههاي ذخيره شده را نيز بهمراه معناي آنها حفظ كند. اين زبان داراي هيچ برچسب از پيش تعريف شدهاي نيست و تمامي برچسبها برحسب نياز توسط كاربر تعريف ميشوند. قابليتهاي XML و اجزاء همراه آن، اين زبان را به زبان قابل حمل و استاندارد براي كاربردهاي مختلف تبديل كرده است.
فايلهاي XML داراي قابليت متني هستند طوري كه ميتوان آنها را در ويرايشگرهاي متني ويرايش كرد. يك فايل در XML از دو قسمت متن و علائم نشانه گذاري تشكيل شده است كه قسمت متن آن دادههاي اصلي ذخيره شده و علائم نشانهگذاري و ابرداده توصيف كننده متن را در بر دارد. XML از يك سو با ذخيره فايلهايش در قالب متني و استفاده از علائم نشانهگذاري فهم معناي دادههاي ذخيره شده را براي انسان ممكن ميسازد و از سوي ديگر با در اختيار قرار دادن اين فايلها در يك قالب ساختيافته براي برنامهها، پردازش آن را براي كامپيوتر ساده ميكند.
جزء اصلي تشكيل دهنده XML ، عنصر نام دارد كه شامل نام و محتوي ميباشد. محتواي يك عنصر بين دو علامت نشانهگذاري خاص با نامهاي برچسب شروع و برچسب پايان محصور ميشود. روش برچسبگذاري XML همانند HTML است كه در اصل HTML و XML اين روش را از SGML به ارث بردهاند.
برچسب شروع شامل نام عنصر است كه بين دو علامت > و < قرار گرفته و برچسب پايان داراي علامت / اضافه قبل از نام عنصر ميباشد. براي مثال رشته زير نمايش دهنده عنصر tel در XML ميباشد كه محتواي آن شماره تلفن 021-86019341 ميباشد.
< tel> 021-86019341
بايد توجه داشت كه نام عنصر در XML نسبت به حروف كوچك و بزرگ حساس ميباشد.
هر يك از عناصر ميتوانند داراي چندين صفت باشند كه هر صفت از يك زوج نام و مقدار تشكيل شده است. در مورد صفت نيز نحوه نگارش همانند HTML ميباشد به اين صورت كه صفات يك عنصر در داخل برچسب شروع آن عنصر قرار ميگيرند و بين هر صفت و مقدار آن علامت = قرار گرفته و مقدار صفت نيز مابين كاراكترهاي مشخص كننده رشته محصور شده است. براي مثال عنصر tel در مثال قبلي ميتواند شامل صفتي با نام Prefered به صورت زير باشد كه محتواي آن true است.
prefered = ” true” > 021-86019341
عناصري كه داراي محتوا نيستند به عناصر تهي معروف ميباشند كه معمولاً به دليل استفاده از مقادير صفتهايشان در داخل يك فايل XML قرار گرفتهاند. براي مثال عنصر email در مثال زير يك عنصر تهي ميباشد:
محتواي عناصر محدود به متن نيست و عناصر ميتوانند شامل عناصر ديگر باشند كه آنها نيز ميتوانند شامل متن و عناصر ديگر باشند. به عبارت ديگر يك فايلXML، درختي از عناصر است كه محدوديتي برعمق آن وجود ندارد و عناصر ميتوانند در اين درخت بطور دلخواه تكرار شوند.
تمام عناصر در يك فايل XMl فرزند عنصري هستند . به غير از عنصر، يك فايل XML ميتواند داراي اجزائي مانند توضيحات، نهاد، دستورات پردازشي و غيره نيز باشد كه از درجه اهميت كمتري نسبت به عنصر برخوردار هستند و براي مقاصد جانبي مانند اضافه كردن توضيح به متن فايل XML و كاربردهاي ديگر استفاده ميشوند.
بايد توجه داشت كه كاراكترها در يك فايل XML مطابق استاندارد Unicode 2 ميباشند و بنابراين فايلهاي XML قادر به نمايش كاراكترهاي تمام زبانهاي زنده دنيا ميباشند كه اين يكي از مزاياي XML براي كاربردهاي مبادله داده ميباشد. البته به اين دليل كه كاراكترها در استاندارد Unicode به صورت دوبايتي كد ميشوند ميتوان براي جلوگيري از افزايش حجم فايلهاي XMl آنها را با استفاده از استانداردهاي ديگر مانند ISO 8859-1 , UTF-8 كه اولي مخصوص كاراكترهاي انگليسي و ديگري مخصوص كاراكترهاي لاتين است، نيز كد كرد .