Extensible Markup Language
ملف XML يُرمّز بيانات مُهيكلة كعناصر متداخلة مع سمات في نص عادي قابل للقراءة البشرية والآلية. صادقت عليه W3C عام 1998، ويُشكّل XML الأساس لصيغ المستندات (DOCX، SVG)، وخلاصات RSS، وخدمات SOAP، ومعايير البنوك (ISO 20022)، والفوترة الإلكترونية ZATCA — حتى مع هيمنة JSON على واجهات الويب.
التحويل غير متاح حالياً. تحويل XML يتطلب معالجة XSLT أو تحليل واعي بالمخطط — ميزات قيد الدراسة.
أسئلة شائعة
لماذا يعرض متصفحي رسالة 'هذا الملف XML لا يبدو أن لديه معلومات نمط مرتبطة به'؟
تظهر هذه الرسالة عند فتح ملف XML خام مباشرةً في المتصفح بدون ورقة أنماط مرتبطة. هذا ليس خطأ — المتصفح ببساطة ليس لديه تعليمات للعرض المرئي فيعرض شجرة المستند الخام بدلاً من ذلك. ترى هذا عادةً مع خرائط مواقع XML وخلاصات RSS واستجابات واجهات البرمجة. الملف نفسه صالح تماماً وحسن التشكيل.
ما الفرق بين XML وJSON؟
XML يستخدم وسوم فتح وإغلاق متطابقة مع سمات، ويدعم الفضاءات الاسمية، ويوفر تحققاً رسمياً من المخطط عبر XSD. JSON يستخدم صيغة أقواس معقوصة أخف تُرتبط مباشرةً بكائنات لغات البرمجة. JSON أصغر حجماً بنسبة 30 إلى 50 بالمئة للبيانات المكافئة ويهيمن على واجهات الويب الحديثة، بينما يبقى XML ضرورياً في الأنظمة المؤسسية والصناعات المُنظّمة.
ما هو حقن XXE ولماذا يُعتبر XML عالي المخاطر؟
حقن XXE يستغل إعلان كيان DOCTYPE لقراءة ملفات الخادم أو إطلاق طلبات لموارد الشبكة الداخلية. متغير Billion Laughs يستخدم توسع كيانات متداخل لتحويل بضع مئات بايت إلى غيغابايت من استهلاك الذاكرة. التخفيف يتطلب تعطيل تحليل الكيانات الخارجية ومعالجة DTD في تكوين المحلل قبل التعامل مع مدخلات غير موثوقة.
هل لا يزال XML مُستخدماً أم حلّ JSON محله؟
JSON حلّ محل XML في معظم واجهات الويب، لكن XML لا يزال مُتجذّراً بعمق في البنية التحتية. كل ملف DOCX وXLSX يحتوي XML داخلياً. رسومات SVG وخلاصات RSS وتخطيطات Android وملفات Maven والتحويلات المصرفية (ISO 20022) وبيانات الرعاية الصحية (HL7 FHIR) والفوترة الإلكترونية ZATCA السعودية كلها تعمل على XML.
ما أهمية XML في الفوترة الإلكترونية السعودية ZATCA؟
هيئة الزكاة والضريبة والجمارك تفرض صيغة UBL 2.1 XML لجميع الفواتير الإلكترونية في المملكة. المرحلة الثانية تتطلب توقيعاً رقمياً XML (XAdES) وختماً تشفيرياً. الموجة 24 بموعد يونيو 2026 تُوسّع الإلزام ليشمل منشآت إضافية. عدم الامتثال يُعرّض المنشأة لغرامات تصل إلى 50,000 ريال لكل فاتورة.
ما الفرق بين مستند XML حسن التشكيل ومستند XML صالح؟
XML حسن التشكيل يتبع قواعد النحو: تداخل صحيح، سمات بين اقتباسات، عنصر جذر واحد، وإهراب صحيح للأحرف الخاصة. XML الصالح حسن التشكيل ويطابق أيضاً مخططاً (XSD أو DTD أو RELAX NG) يُعرّف العناصر والسمات وأنواع البيانات المسموحة. يمكن للمستند أن يكون حسن التشكيل دون أن يكون صالحاً.
كيف أفتح وأعرض ملف XML؟
أي متصفح ويب يعرض XML بعرض شجري قابل للطي. محررات النصوص مثل VS Code وNotepad++ وSublime Text توفر تلويناً نحوياً. للتحقق، استخدم xmllint في سطر الأوامر أو محرراً واعياً بـ XML مثل Oxygen XML Editor. XML نص عادي، لذا حتى أبسط محرر نصوص يمكنه فتحه.
ما يميز .XML
سليل SGML
قبل وجود XML، هيكلت المؤسسات مستنداتها بلغة SGML (لغة التوصيف المعيارية المعمّمة)، وهي معيار ISO صدر عام 1986. كانت SGML قوية لكنها بالغة التعقيد — مواصفتها الكاملة تجاوزت 500 صفحة، وبناء محلل مطابق تطلّب خبرة عميقة. عندما انفجر الويب في منتصف التسعينيات، شكّلت W3C فريق عمل بقيادة جون بوساك من شركة Sun Microsystems لإنشاء لغة تحتفظ بنقاط قوة SGML الجوهرية — البنية الذاتية الوصف، والتحقق، والقابلية للتوسعة — مع التخلي عن تعقيدها. النتيجة، التي نُشرت كتوصية W3C في 10 فبراير 1998، كانت XML 1.0. صاغ فريق التصميم عشرة مبادئ في مقدمة المواصفة، آخرها يُقرّر أن الاختصار ذو أهمية ضئيلة — وهذا يُفسّر إسهاب XML كخيار تصميمي متعمّد يُفضّل الوضوح على الاختزال.
اكتشف التفاصيل التقنية
حسن التشكيل مقابل الصلاحية
يفرض XML مستويين من صحة المستند. المستند حسن التشكيل إذا اتبع قواعد النحو: كل وسم فتح له وسم إغلاق مطابق، والعناصر متداخلة بلا تداخل خاطئ، وقيم السمات بين علامتي اقتباس، وعنصر جذر واحد بالضبط. كل محلل XML مطابق يرفض المستندات غير حسنة التشكيل — لا يوجد وضع استرداد أخطاء مكافئ لتحليل HTML المتساهل.
المستند صالح إذا كان حسن التشكيل وأيضاً مطابقاً لمخطط يُعرّف العناصر والسمات وأنواع البيانات المسموحة. ثلاث لغات مخططات تتنافس على هذا الدور. DTD (تعريف نوع المستند) هو الأقدم، موروث من SGML. XML Schema (XSD)، نشرته W3C عام 2001، يُضيف تحققاً مُنمّطاً مع وراثة وتعريفات أنواع معقدة وقيود واعية بالفضاءات الاسمية. RELAX NG يُقدّم بديلاً أبسط وأسهل قراءةً.
الفضاءات الاسمية والمستندات المُركّبة
عندما يجمع مستند XML واحد مفردات من مصادر مختلفة — رسم SVG مُضمّن في صفحة XHTML، أو بنود فاتورة إلى جانب عناصر توقيع رقمي — قد تتصادم أسماء العناصر. فضاءات XML الاسمية تحل هذا بربط بادئات بمعرّفات URI. مغلف SOAP قد يستخدم فضاء SOAP لبنيته بينما تستخدم الحمولة فضاء UBL لعناصر الفاتورة. سمة xmlns تُعلن هذه الروابط، وأسماء العناصر ذات البادئات مثل cbc:IssueDate تجعل مصدر المفردات صريحاً. الفضاءات الاسمية ضرورية في XML المؤسسي لكنها من الميزات التي تجعل XML أصعب استخداماً من JSON.
التحويل والاستعلام
XSLT (تحويلات XSL) لغة تصريحية لتحويل مستندات XML إلى صيغ أخرى. ورقة أنماط XSLT تحتوي قوالب تُطابق عقد المستند المصدر وتُخرج محتوى مُحوّلاً — HTML للعرض على الويب، أو مفردات XML مختلفة لتكامل الأنظمة، أو نص عادي للتقارير. XSLT 1.0 صدر عام 1999 ولا يزال مُستخدماً على نطاق واسع. XSLT 3.0 صدر عام 2017 وأضاف دعم البث لتحويل مستندات أكبر من الذاكرة المتاحة.
XPath يوفر لغة استعلام لتحديد العقد داخل شجرة XML. تعبير مثل //product[@category='electronics']/price يختار عناصر السعر تحت عناصر المنتج بسمة فئة مطابقة في أي مكان بالمستند. XQuery يُوسّع XPath إلى لغة استعلام كاملة مشابهة لـ SQL لقواعد بيانات XML.
التحليل: DOM مقابل SAX
توجد استراتيجيتان أساسيتان لتحليل XML. محللات DOM تقرأ المستند بالكامل وتبني شجرة في الذاكرة يتنقل فيها التطبيق ويتعامل معها — مناسب للمستندات الصغيرة والمتوسطة لكنه يفشل مع الملفات الكبيرة لأن الشجرة تستهلك عدة أضعاف حجم الملف من الذاكرة. محللات SAX تتدفق عبر المستند وتُطلق أحداث استدعاء لبداية العنصر ونهايته وبيانات الأحرف دون بناء شجرة — ضرورية لمعالجة ملفات XML بالغيغابايت مثل سجلات المعاملات المالية ومجموعات البيانات الحكومية. StAX يوفر بديلاً قائماً على السحب.
خسر حرب الواجهات لكنه يُشغّل كل شيء تحتها
هيمن XML على تبادل بيانات الويب حتى أوائل الألفية. خدمات SOAP غلّفت حمولات XML في مغلفات XML بمخططات XML وأمان XML. التعقيد كان هائلاً. عندما اكتسبت بنية REST زخماً وقدّم JSON بديلاً أبسط يُرتبط مباشرةً بكائنات JavaScript، هاجر المطورون جماعياً. بحلول 2012 تجاوز JSON لغة XML في واجهات الويب الجديدة.
لكن XML لم يختفِ — انسحب من الطبقة المرئية إلى البنية التحتية. كل ملف DOCX وXLSX وPPTX أرشيف ZIP يحتوي مستندات XML. SVG هو XML. خلاصات RSS وAtom هي XML. تخطيطات Android وملفات Maven هي XML. رسائل التحويلات المصرفية تستخدم XML عبر ISO 20022. الفوترة الإلكترونية ZATCA في السعودية تتطلب UBL 2.1 XML.
ZATCA والسياق السعودي
هيئة الزكاة والضريبة والجمارك (ZATCA) تفرض الفوترة الإلكترونية بصيغة UBL 2.1 XML لجميع الفواتير الضريبية في المملكة العربية السعودية. المرحلة الثانية (الربط والتكامل) تتطلب توقيعاً رقمياً XML (XAdES) وختم تشفيري وQR Code مُضمّن. الموجة 24 بموعد نهائي في يونيو 2026 تُوسّع الإلزام ليشمل منشآت إضافية. عدم الامتثال يُعرّض المنشأة لغرامات تصل إلى 50,000 ريال لكل فاتورة. فضاءات UBL الاسمية مثل cac: وcbc: تُستخدم في كل فاتورة إلكترونية سعودية.
القطاع المصرفي السعودي يتبنى معيار ISO 20022 XML لرسائل التحويلات المالية، بما يتوافق مع مبادرة مؤسسة النقد العربي السعودي (ساما) لتحديث البنية التحتية للمدفوعات. هيئة الاتصالات وتقنية المعلومات (CITC) تستخدم XML في أنظمة الامتثال والتقارير التنظيمية.
الاستقرار كميزة
XML 1.0 حصل على خمس إصدارات بالضبط من نشره الأول عام 1998 إلى الإصدار الخامس عام 2008. منذ ذلك الحين — لا شيء. لا إصدار سادس، لا تغييرات جذرية، لا إهمال. هذا يجعل XML 1.0 من أكثر المواصفات استقراراً في تاريخ تقنيات الويب. لسياقات الأرشفة والحفظ، حيث يجب أن تبقى الصيغة قابلة للقراءة لعقود، هذا السجل من الاستقرار ميزة جوهرية.
مقارنة .XML مع البدائل
| المقارنة | المعيار | الفائز |
|---|---|---|
| .XML vs .JSON | الإسهاب JSON يُمثّل البيانات المكافئة بعدد بايتات أقل بنسبة 30-50% بإلغاء وسوم الإغلاق وصيغة السمات وإعلانات الفضاءات الاسمية. هذا يجعل JSON أسرع في التحليل وأرخص في النقل عبر الشبكات. | JSON أفضل |
| .XML vs .JSON | التحقق من المخطط XSD يوفر تحققاً مُنمّطاً مع وراثة وتعريفات أنواع معقدة وقيود واعية بالفضاءات الاسمية وقواعد العدد. JSON Schema قادر لكنه أقل نضجاً للتحقق من مستندات مؤسسية متعددة الفضاءات. | XML أفضل |
| .XML vs .HTML | معالجة الأخطاء محللات XML ترفض المستندات المشوّهة فوراً — لا استرداد أخطاء. محللات HTML متساهلة بالتصميم وتُصلح الوسوم غير المُغلقة وأخطاء التداخل بصمت. صرامة XML تكشف تلف البيانات مبكراً. | XML أفضل |
| .XML vs .YAML | التبني المؤسسي XML يهيمن على الصناعات المُنظّمة — البنوك (ISO 20022)، والرعاية الصحية (HL7 FHIR)، والحكومات (فوترة UBL)، والقانون (Akoma Ntoso). YAML يتركز في DevOps والأدوات السحابية (Kubernetes، Docker Compose). | XML أفضل |
المرجع التقني
- نوع MIME
application/xml- المطوّر
- World Wide Web Consortium (W3C)
- سنة التقديم
- 1998
- معيار مفتوح
- نعم — عرض المواصفات
البنية الثنائية
XML صيغة نصية بلا بنية ثنائية أو بايتات سحرية. يبدأ مستند XML بمقدمة اختيارية: إعلان XML (<?xml version="1.0" encoding="UTF-8"?>) يحدد الإصدار وترميز الأحرف، يليه إعلان DOCTYPE اختياري يُشير إلى DTD أو يُعرّف كيانات مُضمّنة. جسم المستند يتكون من عنصر جذر واحد يحتوي عناصر أبناء متداخلة محددة بوسوم فتح (<tag>) وإغلاق (</tag>) مطابقة، مع عناصر فارغة تستخدم صيغة الإغلاق الذاتي (<tag/>). العناصر تحمل سمات كأزواج اسم-قيمة داخل وسم الفتح. المحتوى النصي وأقسام CDATA وتعليمات المعالجة والتعليقات تظهر داخل العناصر أو بينها. UTF-8 هو الترميز الافتراضي. PRONOM يُعرّف XML كـ fmt/101 باستخدام إعلان <?xml كالتوقيع الأساسي.
التحويل غير متاح حالياً. تحويل XML يتطلب معالجة XSLT أو تحليل واعي بالمخطط — ميزات قيد الدراسة.
نقاط الضعف
- حقن XXE (كيان XML الخارجي) — إعلانات كيان DOCTYPE يمكنها قراءة ملفات محلية (file:///etc/passwd) أو عناوين شبكة داخلية (SSRF) أو كيانات معلمات تُسرّب بيانات لخوادم يسيطر عليها المهاجم. OWASP يصنّف XXE ضمن أخطر 10 ثغرات ويب.
- هجوم مليار ضحكة لحجب الخدمة — تعريفات كيانات متداخلة تتوسع أسّياً (كل منها يُشير إلى السابق عشر مرات) تستهلك غيغابايت من الذاكرة من بضع مئات بايت من XML، مما يُعطّل المحلل وربما الخادم بالكامل.
- SSRF عبر DTD خارجي — مستند XML يُشير إلى DTD خارجي يجعل المحلل يجلب مورداً عن بُعد، مما يُمكّن تزوير الطلبات من جانب الخادم خلف جدران الحماية.
- حقن XPath — مدخلات المستخدم المُدمجة في تعبيرات XPath بدون تطهير تسمح بتجاوز المصادقة واستخراج بيانات غير مُصرّح بها من مخازن XML، بشكل مماثل لحقن SQL في قواعد البيانات العلائقية.
الحماية: FileDex يعالج ملفات XML بالكامل في المتصفح باستخدام واجهة DOMParser الأصلية. لا تحليل كيانات خارجية، لا جلب DTD، لا معالجة من جانب الخادم. بيئة المتصفح المعزولة تمنع الوصول لنظام الملفات وطلبات الشبكة من الكيانات المُحلّلة.
- مواصفات لغة التوصيف القابلة للتوسعة (XML) 1.0 (الإصدار الخامس) — توصية W3C
- سجل XML (لغة التوصيف القابلة للتوسعة) — وصف صيغة مكتبة الكونغرس (fdd000075)
- سجل لغة التوصيف القابلة للتوسعة 1.0 (fmt/101) — سجل PRONOM للأرشيف الوطني
- Security ورقة غش منع كيانات XML الخارجية — OWASP
- Standard أنواع وسائط XML — RFC 7303 (تسجيل IANA)