تهيئة XML (.xml)

توصية قياسي

لغة الترميز القابلة للتوسيع (XML) هي لغة ترميز متعددة الاستخدامات تحدد مجموعة من القواعد لترميز المستندات بتنسيق مقروء للبشر وقابل للقراءة الآلية.

ضغط XML عبر الإنترنت

خاص - لا تغادر الملفات جهازك أبدًا

فحص البيانات الوصفية

تتعرف أنظمة التشغيل ومحللات الملفات على ملفات XML من خلال فحص تسلسل البايت الثنائي البادئ:

اختر الملفات أو أسقطها هنا

خاص - لا تغادر الملفات جهازك أبدًا

أو الصق Ctrl+V
ضمان الخصوصية وعدم الإرسال عبر الشبكة: صفر بايت يتم رفعه إلى خوادم خارجية. تمت كل عمليات المعالجة محلياً في صندوق الحماية (Sandbox) الخاص بمتصفحك.

توقيع رأس الملف على مستوى البايت (Magic Bytes)

تتعرف أنظمة التشغيل ومحللات الملفات على ملفات XML من خلال فحص تسلسل البايت الثنائي البادئ:

التوقيع الست عشري (الإزاحة 0):

3C 3F 78 6D

تمثيل ASCII: <?xm

التوحيد القياسي: توصية W3C (الإصدار الخامس من XML 1.0)

المواصفات الفنية

هيكلية الحاويةلغة ترميز نصية ذات بنية هرمية، مع وسوم دلالية وسمات قابلة للتخصيص
الضغطيحقق Gzip أو Deflate ضغطًا بنسبة 85% إلى 92% على الملفات كثيرة وسوم الإغلاق
ترتيب البايتات (Endianness)تدفق أحرف بترميز UTF-8 أو UTF-16، تحدده سمة الترميز في تصريح XML
مساحات الألوانلا ينطبق
القنوات والبنيةالعناصر (<tag>) والسمات (attr="val") وكتل CDATA وتعليمات المعالجة
الحد الأقصى للأبعادبنية شجرية هرمية بلا حد ثابت للحجم
الشفافيةلا ينطبق
البث والتحميل التدرجيتتيح محللات SAX (واجهة XML البسيطة) وStAX قراءة التدفق بكفاءة في استخدام الذاكرة

مصفوفة المقارنة التقنية: XML مقابل المنافسين

السمة التقنيةXML (الحالي)JSONYAMLProtocol Buffers
الإسهابمرتفع (بسبب وسوم الإغلاق وبنية السمات)منخفض (تنسيق مفتاح-قيمة مدمج)منخفض (يعتمد على المسافة البادئة)منخفض للغاية (تسلسل ثنائي)
التحقق من صحة المخططمعايير XSD وDTD راسخة، ويمكن للمترجم فرض الالتزام بهامخطط JSON (اختياري)مخطط JSON أو مخططات YAMLتعريفات مخطط .proto صارمة
مساحات الأسماءدعم مساحات أسماء XML الأصلية (xmlns)لا توجد آلية أصلية لمساحات الأسماءلا توجد آلية أصلية لمساحات الأسماءإعلانات الحزم
التحويلاتخطوط تحويل XSLT التصريحيةرمز مخصص / نصوص jq البرمجيةرمز مخصصرمز مخصص

أنماط التلف الشائعة ودليل الاسترداد بالنظام الست عشري

خطأ في تحليل XML: علامة غير متطابقة أو كيان غير معرّف.

السبب الجذري: أحرف محجوزة غير مُهرّبة (مثل '&' أو '<' أو '>') أو عدم تطابق الأحرف بين علامات الفتح والإغلاق.

الاسترداد: استبدال '&' بـ '&amp;'، و'<' بـ '&lt;'، و'>' بـ '&gt;'، أو تغليف أي نص داخل كتل '<![CDATA[ ... ]]>'.

تحليل الأمان ومتجهات الهجوم على المحلّل

كثيرًا ما استُهدفت محللات XML في بيئات الحوسبة المؤسسية، بسبب قدراتها القوية على معالجة DTD وتوسيع الكيانات.

ناقلات الهجوم المعروفة

  • الكيان الخارجي لـ XML ‏(XXE): تعليمة DOCTYPE خبيثة تشير إلى ملفات على الخادم المحلي (مثل file:///etc/passwd) أو إلى وجهات على الشبكة الداخلية.
  • هجوم «مليار ضحكة» (قنبلة XML): تعريفات كيانات متداخلة تتوسع أُسّيًا في الذاكرة، ما يؤدي إلى حجب الخدمة.
  • حقن XPath: إدخال بيانات المستخدم دون تنقيتها، بما يتيح الاستعلام غير المصرح به من قواعد بيانات XML.

أفضل الممارسات الدفاعية: عطّل دائمًا حلّ DTD الخارجية ومعالجة الكيانات الخارجية في محللات XML (واجعل disallow-doctype-decl مساويًا لـ true).

الأصول التاريخية والمحطات الرئيسية

2008تنشر W3C الإصدار الخامس لـ XML 1.0، مما يؤسس لمعيار دعم الأحرف الدولية الحديثة.
2000تنشر W3C مخطط XML 1.0 (XSD) وDOM المستوي 2، مما يؤسس لأنظمة الأنواع المهيكلة وبنى الأحداث.
1998تنشر W3C توصية XML 1.0 كمجموعة فرعية مبسطة وملائمة للويب من SGML.

المزايا الرئيسية والإيجابيات

  • يضمن التحقق الدقيق من المخطط باستخدام XSD (تعريف مخطط XML) أو DTD سلامة البيانات.
  • تمنع مساحات الأسماء (xmlns) تضارب أسماء العناصر في المستندات المعقدة ذات المصادر المتعددة.
  • أدوات استعلام وتحويل قوية (XPath وXSLT وXQuery).

القيود الفنية والسلبيات

  • مطوّل جدًا: تكرر وسوم الإغلاق أسماء العناصر، فتزداد أحجام الملفات واستهلاك النطاق الترددي.
  • يبني محلل DOM أشجارًا كبيرة من الكائنات تستهلك قدرًا كبيرًا من الذاكرة.
  • عرضة لثغرات الأمان المتعلقة بالكيانات الخارجية لـ XML (XXE) وتوسيع الكيانات.

معلومات تقنية طريفة

  • XML مجموعة فرعية مبسطة من SGML (لغة الترميز العامة القياسية)، صُممت لتعمل بسلاسة عبر شبكة الويب العالمية.
  • مستندات البرامج المكتبية الحديثة (.docx و.xlsx) والصور المتجهة (.svg) وخلاصات RSS كلها صيغ متخصصة مبنية على XML.
  • يحتاج هجوم «مليار ضحكة» الكلاسيكي إلى كيلوبايت واحد فقط من كيانات XML المتداخلة (حيث يشير lol1 إلى عشرة عناصر lol0، ويتواصل التسلسل حتى lol9) ليتضخم عند التحليل أُسّيًا ويستهلك 3 جيجابايت من الذاكرة.

الأسئلة التقنية المتكررة

ما الفرق بين XML حسن التكوين وXML الصالح؟

يستوفي XML «حسن التكوين» قواعد الصياغة الأساسية، مثل تطابق الوسوم، ووضع السمات بين علامتي اقتباس، ووجود عنصر جذر واحد. أما XML «الصالح» فيستوفي هذه القواعد ويلتزم أيضًا بمخطط خارجي مثل XSD أو DTD.

لماذا استبدلت JSON لغة XML لمعظم واجهات برمجة تطبيقات الويب؟

تطابق JSON مباشرةً هياكل البيانات الأصلية في JavaScript ولغات البرمجة الأخرى، مثل خرائط المفاتيح والمصفوفات. كما يحتاج إلى تعليمات تمهيدية أقل، ويُحلَّل أسرع، وينتج بيانات أصغر عند نقلها عبر الشبكة.

ما هي ثغرة الكيان الخارجي لـ XML (XXE)؟

تحدث ثغرة XXE عندما يعالج محلل XML مستندًا غير موثوق به يحتوي على تعريف نوع مستند خارجي (DTD) ممكّن. يمكن للمهاجمين تعريف كيانات تشير إلى ملفات الخادم المحلي (مثل تكوينات النظام) أو عناوين URL الداخلية للشبكة، مما يتسبب في قراءة الخادم للبيانات السرية والكشف عنها.