ما هو تنسيق XML؟
XML (لغة الترميز القابلة للتوسعة) صيغة نصية معتمدة من W3C للمستندات المنظمة وتبادل البيانات. التنسيق — ويُسمى أيضاً الطباعة الجميلة أو التجميل — يأخذ مصدر XML سليم البنية ويعيد إزاحته بحيث يسهل تصفّح كل عنصر وسمة وتعليق وتعليمة معالجة ومقطع CDATA. شجرة المستند المحلَّلة محفوظة تماماً؛ المسافات البيضاء بين العناصر هي وحدها التي تتغير.
كيف يعمل تنسيق XML؟
تتم معالجة مدخلاتك بالكامل داخل متصفحك باستخدام واجهات DOMParser و XMLSerializer الأصلية إلى جانب مُزِيح متكرر مخصّص. الخطوات الرئيسية هي:
- يُقرأ مدخلك حرفياً من حقل النص — كل بايت ألصقته يبقى في الذاكرة محلياً.
- يحلل المتصفح المدخل عبر
new DOMParser().parseFromString(text, 'application/xml'). إذا لم يكن المدخل سليم البنية، يُدرج المحلل عقدة<parsererror>تحمل في حمولتها النصية إشارات المحرك لرقم السطر والعمود — تُعرض كما هي في شريط الخطأ. - عند نجاح التحليل، يمشي مُزِيح مخصّص في شجرة DOM بطريقة العمق أولاً، باعثاً كل عنصر ومجموعة سمات ومقطع CDATA وتعليق وتعليمة معالجة على سطر مستقل وعلى العمق الحالي. الوسوم الفارغة ذات الإغلاق الذاتي تُحترم عند تشغيل الخيار.
- يعكس وضع التصغير الخط:
XMLSerializer().serializeToString(doc)يبعث شكلاً من سطر واحد، ثم يحذف تعبير منتظم محروس المسافات بين العناصر دون المساس بالنص داخل مقاطع CDATA أو عقد النص غير الفارغة. - يُكتب الناتج في حقل نص للقراءة فقط، ويُمسح شريط الخطأ، ويُغلّف زر التنزيل النتيجة كملف
.xmlجاهز للشحن أو الإرفاق بتذكرة.
لماذا نُنسّق XML باستخدام هذه الأداة؟
- الخصوصية: كل عملية تحليل وتنسيق وتصغير تحدث داخل متصفحك. XML لا يصل أبداً إلى خوادمنا — لا رفع ولا قياس عن بُعد ولا حساب.
- أخطاء دقيقة: حين يكون المدخل غير سليم، يعرض المحلل السطر والعمود اللذين يبلّغ عنهما محرك المتصفح ذاته، لا تخميناً اصطناعياً — وهي الأرقام نفسها التي ستراها في أدوات المطور.
- ذهاب وعودة أمين: نسِّق ثم صغِّر، تستعيد مكافئ مستندك الأصلي بايتاً ببايت (مع التحفظ على خيار إعلان XML) — التنسيق لا يعيد تقنين أسماء النطاقات ولا يعيد ترتيب السمات.
- سريع: DOMParser الأصلي ومُزِيح بحوالى 60 سطراً يتعاملان مع مغلفات SOAP بحجم ميغابايتات ومقاطع OOXML فوراً، دون مكتبة خارجية تُحمَّل.
ما هي التطبيقات الشائعة لتنسيق XML؟
تظهر طباعة XML الجميلة في النشر الإلكتروني وتكامل المؤسسات وأرشفة البيانات:
- تفقّد خلاصات RSS / Atom: ألصق جسد بودكاست أو خلاصة أخبار للتحقق من بيانات القناة وترتيب المواد وبادئات أسماء النطاقات قبل النشر.
- تصحيح SOAP: نسِّق مغلفاً نُسخ من Wireshark أو سجل عميل SOAP حتى تصبح الترويسة والجسد والخطأ مرئية في لمحة.
- تدقيق خرائط الموقع: أعد إزاحة sitemap.xml المسحوب من منافس أو من موقعك المرحلي لعدّ المداخل وتأكيد بدائل hreflang لكل رابط.
كيف يبدو مثال على تنسيق XML؟
لصق <feed><entry><title>Hello</title></entry></feed> المؤلف من ثلاثة عناصر والضغط على تنسيق بخيار الإزاحة بمسافتين يُنتج مستنداً من أربعة أسطر، يحتل فيه كل عنصر سطراً مستقلاً، مُزاحاً بحسب العمق. التبديل إلى التصغير على المدخل نفسه يطويه إلى السلسلة الأصلية. الذهاب والعودة بلا فقدان لأي مستند سليم البنية.
هل يعمل هذا دون اتصال بالإنترنت؟
نعم. خط أنابيب التنسيق والتصغير هو DOMParser + XMLSerializer خالصان مع مُزِيح متكرر صغير، كلها تعمل داخل تبويب المتصفح. لا يُرفَع شيء، ولا يوجد عامل خدمة يعترض مدخلك، والصفحة لا ترسل أي طلبات شبكية لخطوة التنسيق ذاتها. الحركة الخارجة الوحيدة هي أصول تحميل الصفحة المعتادة (CSS وخطوط وتحليلات) — لا يصل XML إلى Ultim8Soft.
هل يغيّر التنسيق المستند؟
لا تغيير دلالي. التنسيق يعيد كتابة المسافات بين العناصر فقط. أسماء العناصر وقيم السمات ومحتوى النص وحمولات CDATA والتعليقات وتعليمات المعالجة محفوظة بايتاً ببايت. تصريحات أسماء النطاقات والبادئات تبقى تماماً كما كتبها المدخل — المُنسِّق لا يعيد تقنين السمات ولا يعيد ترتيبها. يُحلَّل الناتج إلى شجرة DOM نفسها كالمدخل، مع التحفظ على مفتاح إعلان XML الاختياري.
كيف تُعالَج CDATA والتعليقات وتعليمات المعالجة؟
تُبعث كل منها حرفياً على سطر مستقل وعلى عمق الإزاحة الحالي. حمولات CDATA مُغلَّفة بـ <![CDATA[…]]> دون إعادة إزاحة في الداخل — يقول المعيار إن محتوى CDATA معتم، فلا يلمسه المُنسِّق أبداً. التعليقات تستخدم <!-- … -->؛ وتعليمات المعالجة تستخدم <?target data?>. الثلاثة تنجو من رحلة تنسيق → تصغير → تنسيق وتحتفظ بمحتواها سليماً.
ما الفرق بين تنسيق XML وتصغيره؟
التنسيق يوسّع المسافات ليتمكن البشر من قراءة شجرة المستند؛ والتصغير يحذفها للنقل والتخزين. كلاهما يعمل على شجرة DOM المحلَّلة، لا على سلسلة البايتات الخام، لذا فإن رحلة تنسيق → تصغير على مستند سليم البنية تُنتج مكافئ الشكل المُصغّر الأصلي بايتاً ببايت. استخدم اتجاه التنسيق عند الحاجة لقراءة أو مقارنة حمولة XML، واتجاه التصغير عند رغبتك بإرسالها عبر بوابة API محاسَبة أو تضمينها داخل مستند آخر.
يستخدم منسّق XML هذا المحلل نفسه الذي يستعمله متصفحك لاستجابات AJAX XHR ومستندات SVG، فأي XML سليم البنية — RSS وAtom وSOAP وsitemap وOOXML وSVG — يدور دورة كاملة بسلاسة. ألصق أي XML أعلاه، انسخ الناتج، أو نزّله كملف .xml.