معنى XML
XML اختصار لعبارة Extensible Markup Language، أي «لغة الترميز القابلة للتوسعة». أصبحت توصية رسمية من W3C عام 1998، وهي تصف البيانات بوسوم تختار أسماءها بنفسك – وهذا هو معنى «القابلة للتوسعة». وعلى عكس HTML، لا تحتوي XML على وسوم محددة مسبقًا: يمكن لكتالوج منتجات أن يستخدم <product> و<price>، ولفاتورة أن تستخدم <item> و<total>.
يبدو مستند XML صغير هكذا: <book id="1"><title>XML Basics</title><year>2026</year></book>. وبما أن XML نص عادي، يستطيع البشر قراءته وتستطيع كل لغات البرمجة معالجته. وهو يخزّن البيانات وينظّمها فقط – ولا يفعل شيئًا بمفرده؛ فالبرامج هي التي تحدد معنى البيانات وطريقة عرضها.
قواعد صياغة XML
يجب أن يلتزم كل مستند XML ببضع قواعد صارمة، ويُسمّى المستند الذي يلتزم بها سليم البنية (well-formed):
- يوجد عنصر جذر واحد فقط يحتوي على جميع العناصر الأخرى.
- كل عنصر مُغلق:
<name>…</name>، أو ذاتي الإغلاق مثل<br/>. - العناصر متداخلة بشكل صحيح:
<b><i>…</i></b>، وليس أبدًا<b><i>…</b></i>. - الأسماء حساسة لحالة الأحرف:
<Item>و<item>عنصران مختلفان. - توضع قيم السمات دائمًا بين علامتي اقتباس مفردتين أو مزدوجتين.
- يُهرَّب الرمزان
&و<في النص بالشكل&و<. - يجب أن يأتي التصريح الاختياري
<?xml version="1.0" encoding="UTF-8"?>في بداية المستند تمامًا.
تُكتب التعليقات بالشكل <!-- … -->. وتفحص أداة التحقق من XML كل هذه القواعد في ثانية، وتشير إلى سطر أي خطأ.
العناصر والسمات
العنصر هو وسم بداية ومحتواه ووسم نهاية: <price>19.90</price>. ويمكن أن تحتوي العناصر على نص أو على عناصر أخرى أو على كليهما. أما السمة فهي زوج من اسم وقيمة داخل وسم البداية: <price currency="EUR">.
| العنصر | السمة | |
|---|---|---|
| مثال | <color>red</color> | color="red" |
| قابل للتكرار | نعم | لا، مرة واحدة لكل عنصر |
| يمكن أن يحتوي على عناصر فرعية | نعم | لا، نص فقط |
| الترتيب مهم | نعم | لا |
عُرف شائع: استخدم العناصر للبيانات نفسها ولكل ما يمكن أن يتكرر أو تكون له بنية، واستخدم السمات للبيانات الوصفية مثل المعرّفات (IDs) أو الوحدات أو الأنواع.
XML سليم البنية مقابل XML الصالح
يتبع XML سليم البنية (well-formed) قواعد الصياغة، وترفض المحللات (parsers) أي شيء غير ذلك. أما XML الصالح (valid) فهو سليم البنية ويطابق أيضًا مخططًا (schema) يحدد العناصر والسمات المسموح بها، وترتيبها، وأنواع بياناتها.
- DTD (Document Type Definition) هي لغة المخططات الأصلية المدمجة في XML 1.0، ويمكنها أيضًا تعريف كيانات مثل
. - XSD (XML Schema Definition) مكتوبة هي نفسها بلغة XML، وتدعم أنواع بيانات مثل التواريخ والأعداد العشرية. وتنشر صيغ الفواتير الإلكترونية مثل CFDI وNF-e وUBL مخططات XSD الخاصة بها.
مساحات الأسماء في XML (Namespaces)
لأن أي شخص يستطيع ابتكار أسماء الوسوم، قد تستخدم مجموعتا وسوم مختلفتان الاسم نفسه – مثل <title> بمعنى عنوان الكتاب و<title> بمعنى لقب الشخص. تفصل مساحات الأسماء (Namespaces) بينهما بربط الأسماء بمعرّف URI. فالتصريح xmlns:cfdi="http://www.sat.gob.mx/cfd/4" يعرّف البادئة cfdi، وبذلك ينتمي <cfdi:Comprobante> إلى مجموعة وسوم CFDI 4.0 المكسيكية. أما مساحة الأسماء الافتراضية، أي xmlns="…" بلا بادئة، فتنطبق على كل عنصر بلا بادئة بداخلها. والـ URI مجرد معرّف؛ ولا يُنزَّل منه أي شيء.
الفرق بين XML وJSON وHTML
| XML | JSON | HTML | |
|---|---|---|---|
| الغرض | تخزين البيانات المنظمة والمستندات وتبادلها | تبادل البيانات، خاصة في واجهات برمجة تطبيقات الويب (APIs) | عرض صفحات الويب |
| أسماء الوسوم أو المفاتيح | تحددها أنت | تحددها أنت | ثابتة وفق معيار HTML |
| أنواع البيانات | نص، ما لم يحدد مخطط أنواعًا أخرى | سلسلة نصية، رقم، قيمة منطقية، null، مصفوفة، كائن | نص |
| السمات | نعم | لا | نعم |
| التعليقات | نعم | لا | نعم |
| المخططات | DTD، XSD | JSON Schema | – |
| أخطاء الصياغة | ترفضها المحللات | ترفضها المحللات | تصلحها المتصفحات |
يتميز JSON بأنه أقصر ويتوافق مباشرة مع الكائنات في JavaScript، ولهذا انتقلت إليه معظم واجهات برمجة تطبيقات الويب. لكن XML لا يزال قويًا حيث تمزج المستندات النص بالوسوم، أو تحتاج إلى مساحات أسماء، أو يجب التحقق منها بدقة وفق مخططات – ولهذا ما زالت مصالح الضرائب ودور النشر وصيغ المستندات المكتبية تعتمد عليه.
ما هو ملف XML وكيف تفتحه؟
ملف .xml هو ملف نصي عادي يحتوي على مستند XML، ويكون عادةً بترميز UTF-8. ولأنه نص، يمكن فتحه بأي محرر نصوص – Notepad على Windows، أو TextEdit على Mac، أو محرر أكواد مثل VS Code. ويعرض Chrome وFirefox ملفات XML على شكل شجرة عند سحبها إلى نافذة المتصفح، كما يستطيع Excel استيراد بيانات XML إلى جدول بيانات.
تستخدم ملفات كثيرة XML دون الامتداد .xml: صور .svg، وخلاصات .rss، ومخططات .xsd، وأوراق أنماط .xsl، وملفات .config في .NET، وملفات .plist على macOS التي يمكن حفظها بصيغة XML. أما ملفات Word وExcel وPowerPoint (.docx، .xlsx، .pptx) فهي أرشيفات ZIP مليئة بملفات XML.
استخدامات XML
- خرائط المواقع: يخبر ملف
sitemap.xmlمحركات البحث بالصفحات الموجودة في الموقع. - خلاصات RSS وAtom: تنشر المواقع الإخبارية والمدونات والبودكاست تحديثاتها بصيغة XML.
- SVG: الرسومات المتجهة على الويب هي مستندات XML.
- ملفات Office: صيغتا Office Open XML (DOCX وXLSX وPPTX) وOpenDocument (ODT وODS) عبارة عن حزم ZIP من ملفات XML.
- الفواتير الإلكترونية: فواتير CFDI في المكسيك وNF-e في البرازيل ملفات XML يجب توقيعها رقميًا واعتمادها قبل أن تصبح سارية قانونيًا؛ وUBL هي صيغة XML التي تقوم عليها الفوترة الإلكترونية عبر Peppol في أوروبا وخارجها.
- خدمات الويب SOAP: تتبادل البنوك ومزودو خدمات الدفع والأنظمة الحكومية رسائل XML موصوفة في ملفات WSDL.
- تطبيقات Android: تُكتب التخطيطات (layouts) وموارد النصوص و
AndroidManifest.xmlبلغة XML. - الإعدادات: ملف
pom.xmlفي Maven، وweb.configفي .NET، والعديد من إعدادات البناء والخوادم الأخرى.
الأسئلة الشائعة
ماذا يعني اختصار XML؟
اختصار لعبارة Extensible Markup Language، أي «لغة الترميز القابلة للتوسعة». وتعني «القابلة للتوسعة» أنك تحدد وسومك بنفسك، ويعني «الترميز» (markup) أن البنية تُكتب على شكل وسوم تحيط بالبيانات.
هل XML لغة برمجة؟
لا. XML صيغة بيانات: تصف المعلومات وتنظمها، لكنها لا تستطيع إجراء أي عمليات حسابية. أما التقنيات المرتبطة بها مثل XPath وXSLT فتُستخدم للاستعلام عنها وتحويلها.
هل لا يزال XML مستخدمًا اليوم؟
نعم. حلّ JSON محل XML في كثير من واجهات برمجة تطبيقات الويب، لكن XML لا يزال المعيار في خرائط المواقع وخلاصات RSS وSVG والمستندات المكتبية وتخطيطات Android وخدمات SOAP والفوترة الإلكترونية في دول كثيرة.
آخر تحديث: