‏‫XML مجموعه ای از روش ها برای کدگذاری و تبدیل فایل ها و مدارک ‬به فرمی است که هم برای ماشین و هم برای انسان قابل خواندن باشد.اکس‌ام‌ال توسّط کنسرسیوم وب جهان‌شمول (W3C) در سال ۱۹۹۶ (میلادی) ایجاد شده و پس از آن افراد زیادی به استفاده از آن روی آوردند و گسترده استفاده از XML بسرعت وسیع شد، بطوری که امروزه از XML در بسیاری ا برنامه ها و زبان ها بعنوان یک پایگاه داده و وسیله ای برای تسهیل عمل ذخیره و بازیابی استفاده می شود.
ساختمان کلی XML به شکل یک درخت است‫، بدین شکل که داری یک ریشه ی اصلی می باشد که تمام اطلاعات درون آن نوشته می شوند.‬ XML در واقع شیوه ی ذخیره ی داده ها بشکل یک درخت است.
اگر با مفهوم درخت آشنایی داشته باشید براحتی می توانید XML را تجریه و تحلیل کنید.(در ریاضیات ، گراف همبند بی دور را درخت گویند. درخت، گرافی شاخه ایست که هر گره آن می تواند دارای صفر یا تعدادی فرزند بوده و حداکثر یک پدر داشته باشد.)
به نمونه ی زیر توجه کنید.


<‬Library‪>‬
	<Book>
		<Name>Introduction to Programming Using Java</Name>
		<Author>David J. Eck</Author>
	</Book>
	<Book>
		<Name>Dive Into Python</Name>
		<Author>Mark Pilgrim</Author>
	</Book>
‪</‬Library‪>

مثال فوق نمایشگر یک لیست کتاب است که دارای ۲ کتاب می باشد که هرکتاب دارای مشخصاتی مثل نام کتاب و نام نویسنده ی آن می باشد. اگر به آن دقت کنید Library ریشه ‌و Book ها مثل فرزندان آن هستند، که هرکدام از فرزندانش خپذ نیز دارای دو فرزند Name و Author می باشند.
شکل کلی آن بصورت زیر است

در آمدی بر XML

فایل های XML ممکن است با تعریف برخی اطلاعات در مورد خودشان آغاز شوند.


<?xml version="1.0" encoding="UTF-8" ?>

برای ایجاد تگ ها در XML کافیست نام مورد نظر را بین دو علامت <> بنویسیم ‪<‬Tag‪>‬
تگ ها در سه نوع آغازی ‪<‬Tag‪>‬، پایانی ‪</‬Tag‪>‬ و تگ های تهی(بدون زیر شاخه) ‪<‬Tag‪/>‬ هستند.
المنت ها بخش های منتطقی از مدرک هستند که با یک تگ آغازی شروع و با یک تگ پایانی با همان نام خاتمه می یابند و یا فقط شامل یک تک تهی می باشند. بین تگ های آغازی و پایانی میتوان المنت های دیگری نیز موجود باشند که به آنها المنت های فرزند می گویند.


<Greeting>Hello, world.</Greeting>

ویژگی ها در XML نشانه هایی هستند شامل جفت نام/ارزش که می توانند در تگ های آغازی و تهی وجود داشته باشند. در مثال زیر المنت img دارای دو ویژگی‫ src و alt ‬میباشد :


<img src="madonna.jpg" alt='by Raphael'/>

مثالی دیگر : <step number="3">Connect A to B.</step> که در آن نام ویژگی number و ارزش یا مقدار آن 3 می باشد.
مثال:
در زیر مثالی ساده خواهیم نوشت که یک مدرک XML کامل می باشد.


<?xml version="1.0" encoding="UTF-8" ?>
<painting>
  <img src="madonna.jpg" alt='Foligno Madonna, by Raphael'/>
  <caption>This is Raphael's "Foligno" Madonna, painted in
    <date>1511</date>–<date>1512</date>.
  </caption>
</painting>

در مثال فوق ۵ المنت painting‪,‬ img‪,‬ caption و دو date وجود دارد که date ها فرزند caption هستند که آن نیز فرزند المنت ریشه یعنی painting است. img دارای دو ویژگی src و alt می باشد.
برای درک بیشتر به این مثال توجه کنید.
فرض کنید شما فروشنده ی تلفن همراه هستید و می خواهید لیستی از گوشی های موجود در مغازه خود تهیه کنید. فرض کنید شما ۵ عدد تلفن همراه در مغازه دارید لیست خود را این چنین تهیه می کنید.

Mobiles‬
	1
	2
	3
	4
	5

هر تلفن دارای شماره سریال مخصوص به خود می باشد ‪که ما با ‬‫****** نشان می دهیم.

‫Mobiles‬
	1 ID:‫********‬**
	2 ID:‫********‬**
	3 ID:‫********‬**
	4 ID:‫********‬**
	5 ID:‫********‬**

هر کدام توسط شرکت خاصی ساخته شده و نامی دارند.‏

Mobiles‬
	1 ID:‫********‬** name:iPhone product:apple
	2 ID:‫********‬** name:V3X product:motorolla
	3 ID:‫********‬** name:N96 product:nokia
	4 ID:‫********‬** name:P1i product:sony ericsson
	5 ID:‫********‬** name:1100 product:nokia

می توان مشخصات دیگر را نیز به این لیست افزود. این لیست همان فرم ساده ی یک مدرک XML است، همانظور که می بینید لیستی از تلفن ها که هرکدام دارای خوصیت های خود هستند که بصورت مرتب نوشته شده اند و این همان روشی است که در XML بکار میرود. مدرک زیر فرم XML لیست بالاست


<mobile-list>
	<mobile id="‫********‬**">
		<name>iPhone</name>
		<product>Apple</product>
	</mobile>
	<mobile id="‫********‬**">
		<name>V3X</name>
		<product>Motorolla</product>
	</mobile>
	<mobile id="‫********‬**">
		<name>N96</name>
		<product>Nokia</product>
	</mobile>
	<mobile id="‫********‬**">
		<name>P1i</name>
		<product>Sony Ericsson</product>
	</mobile>
	<mobile id="‫********‬**">
		<name>1100</name>
		<product>Nokia</product>
	</mobile>
</mobile-list>

مدرک فوق نیز همان لیست تلفن هاست، این لیست شامل ۵ تلفن است که هرکدام دارای سریال مخصوص و نام و شرکت سازنده می باشند.

برخی کاربردهای XML
‏‫XML کاربرد های فراوانی در دنیای امروز دارد و از آن در ایجاد زبان های دیگر مورد استفاده قرار می گیرد، زبان هایی مثل RSS, Atom, SOAP و XHTML ‬، همچنین برنامه های همچون Microsoft Word ، Open Office و iWork برای ذخیره سازی اسناد متنی مورد استفاده قرار می گیرد.
مدرک زیر مثالی از یک مدرک RSS می باشد.همانطور که می بینید rss المنت ریشه ی این درخت است و تنها دارای یک فرزند به نام channel می باشد، channel نیز دارای فرزندهایی می باشد که محتوای اصلی یک فایل RSS را تولید می کنند، مثلا المنت title که عنوان فایل را مشخص می کند. المنت های item نیز که خود دارای فرزندانی هستند موضوعات موجود را نشان می دهند.
RSS یا فید فایل هایی هستند حاوی چکیده مطلاب ارسالی در یک سایت با بلاگ، که به شما این امکان را می دهند که از اخبار و ارسال های جدید سایت های مورد علاقه خود بدون نیاز به سر زدن به آنها با خبر شوید، فقس کافی است در RSS آن سایت عضو شوید و به این صورت شما از وضعیت سایت با خبر می شوید. RSS یکی از ملموس ترین کاربرد های XML در دنیای یارانه است.


<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://farnabaz.4paye.ir"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>فرنباز - drupal</title>
 <link>http://farnabaz.ir/taxonomy/term/9/0</link>
 <description>سیستم مدیریت محتوای دروپال</description>
 <language>fa</language>
<item>
 <title>راهنما نصب دروپال در لوکال هاست</title>
 <link>http://farnabaz.ir/content/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7-%D9%86%D8%B5%D8%A8-%D8%AF%D8%B1%D9%88%D9%BE%D8%A7%D9%84-%D8%AF%D8%B1-%D9%84%D9%88%DA%A9%D8%A7%D9%84-%D9%87%D8%A7%D8%B3%D8%AA</link>
 <description>&lt;p&gt;دروپال یکی از محبوب ترین سایت سازها (سیستم های مدیریت محتوا) موجود می باشد که یه زبان PHP گسترش یافته و قدرت فراوانی در زمینه مدیریت سایت ها و سرویس های تحت وب دارد، سایت های بزرگی همچون ubuntu.com نیز از دروپال بهره می برند.&lt;br /&gt;
نصب ، راه اندازی و گسترش دروپال بسیار ساده می باشد و شما کافی است اندک آشنایی با HTML, CSS و PHP داشته باشید تا بتوانید با دروپال وب سایتی قدرتمند برای خود یا دیگران بسازید.&lt;br /&gt;
در اینجا به تشریح مراحل نصب نصخه 6 دروپال بروی کامپیوتر شخصی می پردازیم.&lt;br /&gt;
نکته: در این آموزش فرض بر این است که شما نرم افزار xampp را نصب کرده و user و password پایگاه داده شما root می باشد.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://farnabaz.ir/content/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7-%D9%86%D8%B5%D8%A8-%D8%AF%D8%B1%D9%88%D9%BE%D8%A7%D9%84-%D8%AF%D8%B1-%D9%84%D9%88%DA%A9%D8%A7%D9%84-%D9%87%D8%A7%D8%B3%D8%AA&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://farnabaz.ir/content/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7-%D9%86%D8%B5%D8%A8-%D8%AF%D8%B1%D9%88%D9%BE%D8%A7%D9%84-%D8%AF%D8%B1-%D9%84%D9%88%DA%A9%D8%A7%D9%84-%D9%87%D8%A7%D8%B3%D8%AA#comments</comments>
 <category domain="http://farnabaz.ir/category/cms/drupal">drupal</category>
 <category domain="http://farnabaz.ir/category/web">Web</category>
 <category domain="http://farnabaz.ir/tags/xampp">XAMPP</category>
 <category domain="http://farnabaz.ir/tags/%D8%A2%D9%85%D9%88%D8%B2%D8%B4">آموزش</category>
 <category domain="http://farnabaz.ir/tags/%D8%AF%D8%B1%D9%88%D9%BE%D8%A7%D9%84">دروپال</category>
 <pubDate>Thu, 22 Mar 2012 15:02:07 +0000</pubDate>
 <dc:creator>farnabaz</dc:creator>
 <guid isPermaLink="false">7 at http://farnabaz.4paye.ir</guid>
</item>
<item>
 <title>ایجاد لینک ویرایش سریع کنار نام پست ها در دروپال</title>
 <link>http://farnabaz.ir/content/%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D9%84%DB%8C%D9%86%DA%A9-%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4-%D8%B3%D8%B1%DB%8C%D8%B9-%DA%A9%D9%86%D8%A7%D8%B1-%D9%86%D8%A7%D9%85-%D9%BE%D8%B3%D8%AA-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%AF%D8%B1%D9%88%D9%BE%D8%A7%D9%84</link>
 <description>&lt;p&gt;ویرایش پست ها یکی از خسته کننده ترین کارها برای هر مدیر سایتی می باشد، زیرا نیازمند زمان زیادی برای خواندن و ویرایش کردن پست می باشد. حال فرض کنید می خواهید ۱۰ پست را در سایت خود ویرایش کنید، در این صورت مجبور هستید تک تک پست ها را باز کرده به بخش ویرایش رفته و آنها را ویرایش کنید، برای راحتی و سرعت بیشتر براحتی می توان لینکی کمکی کنار عنوان پست ایجاد کرد که با کلیک کردن برروی به بخش ویرایش برویم. راهی ساده و کارا برای ویرایش پست ها.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://farnabaz.ir/content/%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D9%84%DB%8C%D9%86%DA%A9-%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4-%D8%B3%D8%B1%DB%8C%D8%B9-%DA%A9%D9%86%D8%A7%D8%B1-%D9%86%D8%A7%D9%85-%D9%BE%D8%B3%D8%AA-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%AF%D8%B1%D9%88%D9%BE%D8%A7%D9%84&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://farnabaz.ir/content/%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D9%84%DB%8C%D9%86%DA%A9-%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4-%D8%B3%D8%B1%DB%8C%D8%B9-%DA%A9%D9%86%D8%A7%D8%B1-%D9%86%D8%A7%D9%85-%D9%BE%D8%B3%D8%AA-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%AF%D8%B1%D9%88%D9%BE%D8%A7%D9%84#comments</comments>
 <category domain="http://farnabaz.ir/category/cms">CMS</category>
 <category domain="http://farnabaz.ir/category/cms/drupal">drupal</category>
 <category domain="http://farnabaz.ir/tags/%D8%AF%D8%B1%D9%88%D9%BE%D8%A7%D9%84">دروپال</category>
 <category domain="http://farnabaz.ir/tags/%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D9%85%D8%AD%D8%AA%D9%88%D8%A7">سیستم مدیریت محتوا</category>
 <pubDate>Wed, 21 Mar 2012 15:06:08 +0000</pubDate>
 <dc:creator>farnabaz</dc:creator>
 <guid isPermaLink="false">4 at http://farnabaz.4paye.ir</guid>
</item>
</channel>
</rss>