اکس‌ام‌ال

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

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

در حال حاضر، گوناگونی، میزان، و ابعاد فراوان به‌کارگیری اکس‌ام‌ال در اغلب زمینه‌ها و ساختارهای اینترنت امروزی به راستی شگفت‌آور است. فقط به عنوان نمونه، باید یادآور شد که تقریباً تمامی فناوری‌های خدمات وب،Web services نگاره‌سازی برداری مقیاس‌پذیر (SVG),Scalable vector graphics - SVG آردی‌اف،Resource Description framework - RDF و بسیاری از موارد دیگر، تنها با اکس‌ام‌ال انجام‌پذیر است.

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

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

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

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

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

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

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

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

 نشانه‌گذاری و محتوا 
نویسه‌هایی که یک سند XML را می‌سازند به دو بخش «نشانه‌گذاری » و «محتوا » تقسیم می‌شوند. تشخیص این دو به وسیلهٔ قواعد ساده‌ای امکان‌پذیر است. نشانه‌گذاری‌ها با نویسهٔ ">" شروع و با نویسهٔ "<" خاتمه می‌یابند. رشته‌های نویسه ای که «نشانه‌گذاری» نیستند، «محتوا» نام دارند.

 برچسب (Tag) 
یک برچسب یک نشانه‌گذاری است که با "<" شروع و با ">" خاتمه می‌یابد. سه نوع برچسب وجود دارد، که مثال‌های آن در زیر آمده‌است:برچسب شروع <section>;
برچسب خاتمه </section>;
برچسب بدون عنصر <line-break />.

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

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

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

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

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

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

 تجربهٔ اوّل 
بندانگشتی|مثالی از زبانه نشانه گذاری xml
به عنوان نمونه‌ای بسیار ساده از یک سند اکس‌ام‌ال می‌توان به بررسی مورد زیر پرداخت:
<University>
<Department>Mathematics</Department>
<Department>Biology</Department>
</University>

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

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

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

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

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

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

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

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

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

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

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

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

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

 پانوشته‌ها 

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

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

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


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