اکس‌ام‌ال

**زبان نشانه‌گذاری گسترش‌پذیر**  با کوته‌نوشت **XML** نوعی زبان نشانه‌گذاری است که شامل مجموعه قواعدی است که به کمک آن می‌توان یک سند رایانه‌ای را کدبندی کرد. قالب کدبندی ایجاد شده توسط زبان XML هم برای انسان و هم برای ماشین (رایانه)ها قابل خواندن است. ائتلاف وب جهان‌گستر مشخصات XML ورژن ۱٫۰ را در سال ۱۹۹۸ ارائه داد، که این استاندارد، XML را به دقت تعریف کرده‌است.

اکس‌ام‌ال ویرایشی از اس‌جی‌ام‌ال است که می‌کوشد پلی بین سادگی اچ‌تی‌ام‌ال و قدرت اس‌جی‌ام‌ال ایجاد کند. در واقع اکس‌ام‌ال زیر مجموعه‌ای از اس‌جی‌ام‌ال است که صرفاً برای استفاده با وب طراحی شده‌است. پس از ایجاد اکس‌ام‌ال توسّط ائتلاف وب جهان‌گستر (W3C) در سال ۱۹۹۶ میلادی، دست‌اندرکاران بسیاری از پروژه‌های محاسبات توزیع‌شده به استفادهٔ گسترده از آن روی آوردند.

در حال حاضر، گوناگونی، میزان، و ابعاد فراوان به‌کارگیری اکس‌ام‌ال در اغلب زمینه‌ها و ساختارهای اینترنت امروزی به راستی شگفت‌آور است. فقط به عنوان نمونه، باید یادآور شد که تقریباً تمامی فناوری‌های خدمات وب، نگاره‌سازی برداری مقیاس‌پذیر (SVG), آردی‌اف، و بسیاری از موارد دیگر، تنها با اکس‌ام‌ال انجام‌پذیر است.

چرایی و چگونگی این امر برای فهم آسان‌تر و درک همه‌جانبه‌تر اینترنت در حال حاضر، و به ویژه، جهت آشنایی با تدابیری که بشر برای هموار نمودن راه‌های گسترش آن در آینده اتّخاذ خواهد کرد، از اهمّیّت بالایی برخوردار است.

## انگیزه‌ها و بنمایه‌ها
بسیاری از پرسش‌های عمده پیرامون پدیده‌های نوین جهانی، و به ویژه موهبت عالم‌گیر اینترنت را ساده‌تر و منطقی‌تر است که با مطالعه و شناخت هر چه واقعی‌تر و همه‌جانبه‌تر تاریخ و فلسفه علوم، مخصوصاً، از ابتدای دوران تولد دوباره تا به امروز پاسخ داد.

### آفرینش و نمایش دانش
اصلی‌ترین و ذاتی‌ترین وظیفهٔ زبان اکس‌ام‌ال بیان، نمایش، و تحت سیطره درآوردن داده‌ها ست. وقتی از داده‌ها اسم می‌بریم، در واقع، اطلاعات و دانش هم گفته‌ایم.

تبیین نقش و اهمیت اکس‌ام‌ال در خلق و نمایش انعطاف‌پذیر، قابل گسترش، و اندازه یاب دانش را بهتر است با اشاره‌ای گذرا بر نقش عنصر خط در هنر نقاشی آغاز کنیم. در نقاشی، استفاده از خط، نقطهٔ آغاز و شروع خلق و آفرینش هنری هم هست. در واقع، پیش از کشیدن اولین خط، فقط یک‌نواختی، بی‌دانشی، بی‌نظمی، و بی‌ساختاری مطلق بر تمامی فضا حاکم است.

خوب که بیندیشیم، زبان اکس‌ام‌ال درست همین کار را با برچسب زدن، نام‌گذاشتن، و صفات برای نام‌ها تعریف کردن در مورد داده‌های بی‌ساختار انجام می‌دهد.

## اصطلاحات کلیدی در XML
آنچه در ادامه می‌آید براساس مشخصات رسمی XML است، و لیست کاملی از همهٔ ساختارهای مشاهده شده در XML نیست؛ در واقع معرفی ساختارهای کلیدی است که در استفاده روزانه XML به کار می‌رود.

### [[نویسه (رایانه)|نویسه]] (کاراکتر)
یک سند XML رشته‌ای از نویسه‌ها است. تقریباً هر کاراکتر مجاز یونی‌کد می‌تواند در یک سند XML نمایش یابد.

### پردازشگر و برنامه‌کاربردی
پردازشگر نشانه‌گذاری‌ها را تحلیل می‌کند و اطلاعات ساختاردار را به برنامه‌کاربردی تحویل می‌دهد. مشخصات XML نیازمندی‌هایی برای پردازشگر XML قرار می‌دهد و تعیین می‌کند که پردازشگر چه بکند و چه نکند؛ اما کاربردهای پردازشگر بالاتر از این مورد است. «پردازشگر» کلمه ای است که مشخصات از آن نام برده‌است، پردازشگر در زبان محاوره‌ای «تجزیه کننده» نام دارد.

### نشانه‌گذاری و محتوا
نویسه‌هایی که یک سند XML را می‌سازند به دو بخش «نشانه‌گذاری » و «محتوا » تقسیم می‌شوند. تشخیص این دو به وسیلهٔ قواعد ساده‌ای امکان‌پذیر است. نشانه‌گذاری‌ها با نویسهٔ ">" شروع و با نویسهٔ "" خاتمه می‌یابد. سه نوع برچسب وجود دارد، که مثال‌های آن در زیر آمده‌است:
```text
برچسب شروع <section>;
برچسب خاتمه </section>;
برچسب بدون عنصر <line-break />.
```


### عنصر (Element)
یک عنصر یک مولفهٔ منطقی در سند است که یا در برچسب شروع و خاتمه قرار دارد، یا شامل برچسب بدون‌عنصر است. نویسه‌هایی که بین برچسب شروع و برچسب خاتمه قرار دارند، «محتوای عنصر» نام دارند. «محتوای عنصر» ممکن است خودش شامل شامل «نشانه‌گذاری» باشد، از این رو می‌تواند شامل عناصر دیگری باشد، به این عناصر «عنصر فرزند» گفته می‌شود.

در زیر دو مثال از عنصر آمده‌است:
```text
<greeting>Hello, world!</greeting>
<line-break />
```


### نشانه (Attribute)
یک نشانه یک نشانه‌گذاری است که شامل یک جفت نام-مقدار است. نشانه یا باید در برچسب شروع باشد یا در یک برچسب بدون‌عنصر قرار بگیرد. در زیر دو مثال از نشانه آمده‌است:
```text
<img src="madonna.jpg" alt="Madonna" />
<step number="3">Connect A to B.</step>
```
در مثال اول، نام‌های نشانه «src» و «alt» هستند، و مقادیر آنها «maddona.jpg» و «Maddona» می‌باشند.

در مثال دوم، نام نشانه «number» است و مقدار آن «۳» است.

یک نشانه XML تنها یک مقدار می‌تواند داشته باشد و هر نشانه نیز حداکثر یکبار می‌تواند هر عنصر ظاهر شود. اما در شرایطی که باید یک «لیست از مقادیر» داشت، باید لیست را به یک نشانه «خوش فرم» XML کدبندی کرد. در اینجا لیست‌ها می‌توانند دارای جداکنندهٔ «کاما»، «سمیکولن»، یا «نویسه فاصله سفید» باشند. به مثال زیر توجه کنید:
```text
<div class="inner greeting-box">Welcome!</div>
```
در این مثال، نشانه برابر «class» است که مقدار «inner greeting-box» دارد، و نشان‌دهندهٔ دو نام کلاس CSS است: "inner" و "greeting-box".

### اعلان (declaration)
یک سند XML می‌تواند با یک اعلان XML شروع شود، این اعلان، توصیف‌کنندهٔ اطلاعاتی دربارهٔ خود سند است. در زیر یک مثال از اعلان XML آمده‌است:
```text
<?xml version="1.0" encoding="UTF-8"?>
```


## تجربهٔ اوّل
بندانگشتی|مثالی از زبانه نشانه گذاری xml
به عنوان نمونه‌ای بسیار ساده از یک سند اکس‌ام‌ال می‌توان به بررسی مورد زیر پرداخت:

```xml
<University>
<Department>Mathematics</Department>
<Department>Biology</Department>
</University>
```


برخلاف سندهای اچ‌تی‌ام‌ال و اکس‌اچ‌تی‌ام‌ال که در آن‌ها از عناصر و برچسب‌های از پیش تعبیه یافته‌استفاده می‌کنیم، در سندهای اکس‌ام‌ال تمامی برچسب‌ها را خود نام‌گذاری و انتخاب می‌نماییم.

اگر چه برچسب‌های (tags) متعدّدی می‌تواند در هر سند موجود باشد، فقط یکی از آن‌ها - و همواره یکی از آن‌ها (در اینجا University) - نقش ریشه و در خودگیرندهٔ سایر برچسب‌ها را برعهده دارد.

چنانچه نمونهٔ اکس‌ام‌ال داده‌شده در بالا را، عیناً، در فایلی که با xml. ختم می‌شود ذخیره کنیم، می‌توانیم با یکی از متن‌شکن‌های اکس‌ام‌ال شروع به شکستن و پردازش آن بنماییم. از آن‌جا که شرکت مایکروسافت یکی از متن‌شکن‌های اکس‌ام‌ال، موسوم به ام‌اس‌اکس‌ام‌ال را، در درون مرورگر خود یعنی آی‌ای (IE) تعبیه نموده‌است، فقط کافی‌ست سند اکس‌ام‌ال خود را با آی‌ای باز کنیم.

در اینجا، برای مثال بالا صفت خصوصی بودن برای نام یا مفهوم دانشگاه تعیین شده‌است:


```xml
<University Category = "Private">
<Department>Mathematics</Department>
<Department>Biology</Department>
</University>
```


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

## فضای نام‌های اکس‌ام‌ال
مقالهٔ اصلی: فضای نام‌های اکس‌ام‌ال

## تعریف انواع در سندها
مقالهٔ اصلی: تعریف انواع در سندها

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

## طرح‌واره اکس‌ام‌ال و اعتبارسنجی
مقالهٔ اصلی: طرح‌واره اکس‌ام‌ال و اعتبارسنجی

## مدل اشیاءنگر سند
مقالهٔ اصلی: مدل اشیاءنگر سند
ا
گرچه سندهای اکس‌ام‌ال از متن ساخته می‌شود، جستجوی داده‌های موجود در آن‌ها از طریق دستیابی ترتیبی، نه عملی خواهد بود و نه صرفه‌بر. این امر، به‌ویژه، در مواردی دشوارتر خواهد شد که بخواهیم داده‌ها را به‌طور دینامیکی به سند افزوده یا آن‌ها را از آن پاک نماییم.

مدل اشیاءنگر سند معماری خاصّی را به‌دست می‌دهد تا با اجراء آن توسّط یک زبان برنامه‌نویسی بلندتراز، بشود تمامی سند را به شکل یک درخت در حافظهٔ اصلی رایانه پهن کرد؛ بنابراین، فقط سندهای نسبتاً کوچک را می‌توان با این مدل پردازش نمود.

## اِی‌پی‌آی ساده برای اکس‌ام‌ال
مقالهٔ اصلی: اِی‌پی‌آی ساده برای اکس‌ام‌ال

## پانوشته‌ها

## جستارهای وابسته
* اینترنت
* خدمات وب
* وب معانی نگر
* کنسرسیوم وب جهانگیر (W3C)
* اچ‌تی‌ام‌ال (HTML)
* اکس‌اس‌ال
* پیچیدگی
* گرافیک برداری اندازه پذیر (SVG)
* سی‌شارپ
* جاوا

## منابع
* اکس‌ام‌ال: چگونه آن را برنامه‌نویسی کنیم 
* اینترنت و وب جهانگیر: چگونه آن را برنامه‌نویسی کنیم (چاپ چهارم) 
* راهنمای اکس‌ام‌ال 
* اکس‌ام‌ال 

## پیوند به بیرون
* مروری بر XML و تأثیر آن بر جهان فناوری اطلاعات، امیر پارسی اصفهانی، مرکز اطلاعات و مدارک علمی ایران
* جمعیت اینترنتی تحت عنوان XML.org 


رده:ارتباطات فنی
رده:استانداردهای ائتلاف وب جهان‌گستر
رده:استانداردهای وب
رده:پروتکل‌های لایه کاربرد
رده:پسوند نام پرونده
رده:زبان‌های مدل‌سازی داده
رده:زبان‌های نشانه‌گذاری
رده:قالب پرونده‌های رایانه‌ای
رده:قالب پرونده‌های کتاب‌شناسی
رده:قالب‌های آزاد
رده:قالب‌های سریال‌سازی داده‌ها
رده:قراردادهای لایه نمایش