آخرین بروزرسانی: ۲۵ مارس ۲۰۲۵

Title - XML چیست: یک راهنمای جامع

XML چیست؟

XML (Extensible Markup Language) یک زبان نشانه‌گذاری و فرمت فایل است که برای ذخیره‌سازی، انتقال و بازسازی داده‌ها استفاده می‌شود. این زبان یک رویکرد ساختارمند برای رمزگذاری اطلاعات ارائه می‌دهد و در نتیجه برای خواندن انسان و ماشین مناسب است.

ویژگی‌های کلیدی XML

1. تعریف شده توسط استانداردهای باز

  • توسط کنسرسیوم وب جهان‌شمول (W3C) در سال ۱۹۹۸ بر اساس مشخصات XML 1.0 پایه‌گذاری شد.
  • قوانین سخت‌گیرانه‌ای را دنبال می‌کند تا اطمینان حاصل شود داده‌ها به طور ساختارمندی سازماندهی و قابل تفسیر هستند.

2. اهداف طراحی

  • XML با هدف سادگی، عمومی‌سازی و قابلیت استفاده در تمام پلت‌فرم‌ها طراحی شده است.
  • از یک فرمت مبتنی بر متن استفاده می‌کند که خواندن و ویرایش آن را آسان می‌سازد.

3. پشتیبانی از یونیکد

  • XML از یونیکد پشتیبانی می‌کند و اجازه می‌دهد متن را در زبان‌های مختلف ذخیره و پردازش کند.

4. قابلیت تطبیق‌پذیری

  • در ابتدا برای اسناد ساخته شد، ولی اکنون XML به طور گسترده‌ای برای نمایندگی داده‌ها در حوزه‌های مختلف، از جمله خدمات وب، APIها و فایل‌های پیکربندی استفاده می‌شود.

5. طرح‌نامه‌ها و APIها

  • ساختارهای XML می‌توانند با استفاده از Document Type Definition (DTD)، XML Schema (XSD) یا Relax NG تعریف شوند.
  • APIهای مختلفی مانند DOM (مدل شیء سند) و SAX (API ساده برای XML) پردازش XML را ممکن می‌سازند.

6. کاربردهای رایج XML

  • تبادل داده بین سیستم‌های مختلف (مانند خدمات وب، APIها).
  • فایل‌های پیکربندی در برنامه‌های نرم‌افزاری.
  • ذخیره‌سازی اطلاعات ساختارمند (مانند فیدهای RSS، گرافیک SVG، قالب‌های سند مانند DOCX).
  • توسعه وب (مانند XHTML، SOAP، برنامه‌های مبتنی بر AJAX).

نمای کلی XML

1. هدف اصلی XML: سریال‌سازی

سریال‌سازی در XML به معنای:

  • ذخیره‌سازی داده در قالبی ساختارمند.
  • انتقال داده بین سیستم‌های مختلف.
  • بازسازی داده به شکلی که قابل استفاده باشد.

هنگامی که دو سیستم نیاز به تبادل اطلاعات دارند، XML فرمت فایل استانداردی برای قابلیت همکاری فراهم می‌کند. به عنوان یک “زبان میانجی” برای تبادل داده‌های ساختارمند عمل می‌کند.

2. XML به عنوان یک زبان نشانه‌گذاری

XML یک زبان نشانه‌گذاری است به این معنا که:

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

مثال:

<book>
    <title>XML Basics</title>
    <author>John Doe</author>
</book>

اینجا، <book>، <title> و <author> برچسب‌هایی هستند که عناصر داده را تعریف می‌کنند.

3. XML Schema (XSD) و اعتبارسنجی

یک XML Schema (XSD) قوانین ساختاری اسناد XML را تعریف می‌کند.

اسناد XML می‌توانند:

  • درست ساختار یافته باشند → قوانین پایه نحو را رعایت کرده‌اند (لانه‌سازی صحیح، بستن درست برچسب‌ها).
  • معتبر باشند → مطابق با قوانین طرح‌نامه (عناصر اجباری، نوع داده‌های صحیح).

مثالی از یک قاعده XSD:

<xs:element name="title" type="xs:string"/>

این اطمینان حاصل می‌کند که <title> باید شامل یک مقدار رشته‌ای باشد.

4. انواع رسانه XML (RFC 7303)

IETF RFC 7303 انواع رسانه XML را برای انتقال داده‌ها تعریف می‌کند:

  • application/xml → داده استاندارد XML.
  • application/xml-external-parsed-entity → موجودیت‌های تجزیه‌شده XML.
  • application/xml-dtd → اسناد DTD XML.

برای فرمت‌های مبتنی بر XML، پسوند +xml استفاده می‌شود (مانند image/svg+xml برای تصاویر SVG).

5. XML در برنامه‌های شبکه‌ای (RFC 3470 / IETF BCP 70)

IETF BCP 70 (RFC 3470) بهترین شیوه‌ها را برای استفاده از XML در برنامه‌های مبتنی بر شبکه ارائه می‌دهد و اطمینان حاصل می‌کند که قابلیت همکاری داده‌ها به‌صورت یک‌پارچه در سیستم‌ها اجرا می‌شود.


1. کاربردهای XML

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

فرمت‌های رایج مبتنی بر XML:

  • فیدهای وب: RSS، Atom
  • اسناد اداری: Office Open XML، OpenDocument
  • گرافیک و مدل‌های سه‌بعدی: SVG، COLLADA
  • فناوری‌های وب: XHTML
  • پروتکل‌های تبادل داده: SOAP، XMPP
  • AJAX: از XML برای تبادل داده‌های غیرهمزمان استفاده می‌کند

استانداردهای صنعتی با استفاده از XML:

  • بهداشت: HL7 (Health Level 7)
  • صنعت سفر: OpenTravel Alliance
  • امور مالی: FpML (Financial products Markup Language)
  • املاک و مستغلات: MISMO
  • تبادل داده‌های دولتی: National Information Exchange Model

XML در علم:

در هواشناسی، XML برای نمایش داده‌های عملیاتی هواشناسی با پیروی از استانداردهای IWXXM استفاده می‌شود. همچنین، Darwin Information Typing Architecture (DITA) یک استاندارد XML است که به طور گسترده در نشر کاربرد دارد.


2. اصطلاحات کلیدی در XML

شناخت اصطلاحات اساسی در XML برای کار با اسناد XML به طور مؤثر ضروری است.

کاراکتر

یک سند XML دنباله‌ای از کاراکترهای یونیکد است. XML 1.1 تقریباً تمامی کاراکترهای یونیکد را مجاز می‌داند، به‌جز کاراکتر Null (U+0000) که اکیداً ممنوع است.

پردازنده و برنامه

  • پردازنده XML (یا تجزیه‌کننده) نشانه‌گذاری XML را می‌خواند و تحلیل می‌کند.
  • برنامه داده‌های ساختارمند را از طریق پردازنده دریافت کرده و بر اساس آن عمل می‌کند.

نشانه‌گذاری و محتوا

XML کاراکترها را به نشانه‌گذاری و محتوا تقسیم می‌کند:

  • نشانه‌گذاری: شامل عناصر، صفت‌ها و موجودیت‌ها (مانند <tag> و &amp;).
  • محتوا: داده‌های واقعی درون عناصر.
  • بخش‌های CDATA: اجازه می‌دهد متنی که نباید به‌عنوان نشانه‌گذاری تحلیل شود، درون <![CDATA[ ... ]]> قرار گیرد.

برچسب‌ها و عناصر

  • برچسب‌ها: ساختارهای نشانه‌گذاری محصور در < >.
    • <section> (برچسب آغازین)
    • </section> (برچسب پایانی)
    • <line-break /> (برچسب عنصر خالی)
  • عناصر: اجزای منطقی تعریف‌شده با برچسب‌ها.
    • مثال: <greeting>Hello, world!</greeting>

صفات

صفات برای عناصر متاداده فراهم می‌کنند با استفاده از جفت‌های نام-مقدار. مثال:

<img src="image.jpg" alt="Description" />
  • src="image.jpg" و alt="Description" صفات عنصر <img> هستند.

3. کاراکترها و فرار در XML

کاراکترهای یونیکد معتبر در XML

اسناد XML تنها کاراکترهای یونیکد خاصی را مجاز می‌دانند تا از تجزیه صحیح اطمینان حاصل شود.

کاراکترهای مجاز در XML 1.0:

  • کاراکترهای کنترل:
    • U+0009 (تب)
    • U+000A (تغذیه خط)
    • U+000D (بازگشت به اول خط)
  • کاراکترهای متنی:
    • U+0020–U+D7FF
    • U+E000–U+FFFD
    • U+10000–U+10FFFF

بهبودهای XML 1.1:

  • همه کاراکترهای U+0001–U+001F را مجاز می‌داند اما نیازمند به فرار دادن آن‌ها می‌کند.
  • U+0000 (کاراکتر Null) همچنان ممنوع است.

4. رمزگذاری در XML

رمزگذاری‌های رایج XML:

XML از رمزگذاری‌های مبتنی بر یونیکد پشتیبانی می‌کند، شامل:

  • UTF-8 (پیشنهاد شده به عنوان پیش‌فرض)
  • UTF-16 (باید توسط همه تجزیه‌کننده‌های XML پشتیبانی شود)
  • ASCII, ISO-8859-X (رمزگذاری‌های قدیمی)

اعلان رمزگذاری در XML:

سرایند XML می‌تواند رمزگذاری را مشخص کند:

<?xml version="1.0" encoding="UTF-8"?>
  • اگر رمزیاب مشخص نشده باشد، پیش‌فرض بر این است که UTF-8 استفاده می‌شود.
  • UTF-16 نیاز به یک BOM (نشانگر ترتیب بایت) برای تشخیص صحیح دارد.

5. فرار از کاراکترهای خاص در XML

از آنجا که نحو XML کاراکترهای خاصی را رزرو کرده است، باید آن‌ها را فرار داد تا از بروز تضاد جلوگیری شود.

موجودیت‌های پیش‌تعریف‌شده XML:

کاراکترفرم فرار داده شدهمثال
< (کمتر از)&lt;I &lt;3 XMLI <3 XML
> (بیشتر از)&gt;x &gt; yx > y
& (آمپرسند)&amp;AT&amp;TAT&T
' (آپستروف)&apos;"O&apos;Reilly"O’Reilly
" (نقل قول دوبل)&quot;She said &quot;hello&quot;She said “hello”

ارجاعات کاراکتر عددی:

برای کاراکترهای خاصی که قابل تایپ نیستند، از ارجاعات عددی استفاده کنید:

  • اعشاری:
    &#20013;  <!-- کاراکتر چینی "中" -->
    
  • هگزادسیمال:
    &#x4E2D;  <!-- کاراکتر چینی "中" -->
    
  • مثال:
    <message>I &lt;3 J&#xF6;rg</message>
    
    نمایش به صورت: I <3 Jörg

مدیریت داده‌های باینری:

XML از داده‌های باینری خام پشتیبانی نمی‌کند. به‌جای آن از رمزگذاری Base64 استفاده کنید.


6. نظرات در XML

نحو نظر در XML:

<!-- این یک نظر معتبر XML است -->

قوانین برای نظرات XML:

  • نمی‌تواند قبل از اعلان XML ظاهر شود.
  • نمی‌تواند حاوی -- (دو خط تیره) در داخل نظر باشد.
  • مراجعه به موجودیت‌ها در نظرات نادیده گرفته می‌شود.

مثال:

<!-- این یک نظر است با نشانه‌های < و & -->

نتیجه‌گیری

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

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