طباعة XML بشكل جميل بمسافتين أو أربع مسافات أو علامات تبويب، أو تصغيره إلى سطر واحد. يُفحص صحة التركيب أثناء الكتابة، ويُعرض عدد العناصر وعمق التداخل.
اجعل جدار XML قابلاً للقراءة، أو أعده مضغوطًا. الصق XML لإعادة تنسيقه بالمسافات التي تفضلها، أو صغّره إلى سطر واحد. يُفحص المستند للتأكد من سلامة التركيب أثناء الكتابة، وتخبرك العدادات بعدد العناصر التي يحتويها وعمق تداخله.
–
تنسيق XML دون كسره
المسافات البيضاء في XML هي محتوى
هذه هي الحقيقة الوحيدة التي تفصل تنسيق XML عن تنسيق JSON. في JSON، المسافات البيضاء بين الرموز بلا معنى وإزالتها آمنة دائمًا. في XML، الأحرف بين <name> وAda جزء من عقدة النص للعنصر. إعادة إزاحة مستند تغيّر تقنيًا ما يحتويه.
عمليًا لا يهم هذا أبدًا تقريبًا، لأن الغالبية الساحقة من XML تستخدم محتوى عناصر فقط — عناصر تحتوي عناصر أخرى ولا شيء غير ذلك — حيث تكون المسافات المحيطة مهملة في كل مخطط. يضيف المنسق إزاحة فقط داخل تلك العناصر. عندما يحمل عنصر نصًا فعليًا، أو مزيجًا من النص وعناصر فرعية كما تفعل الترميزات الشبيهة بـ HTML، يُترك محتواه تمامًا كما وُجد. تلك القاعدة الوحيدة تمنع <p>Hello <b>there</b></p> من اكتساب مسافات حول there بصمت.
سليم البنية ليس نفس الشيء كصالح
الفحص المُجرى هنا هو سلامة البنية، وهو ما تتطلبه مواصفة XML من كل محلل: عنصر جذر واحد، كل وسم مغلق ومتداخل بشكل صحيح، قيم السمات مقتبسة، و& و< مهربان داخل النص. إذا فشل أي من ذلك، يُرفض المستند نهائيًا — تشتهر XML بغياب استرداد الأخطاء، خلافًا لـ HTML.
الصلاحية خطوة إضافية: تسأل عما إذا كان المستند يطابق مخطط DTD أو XSD أو RelaxNG، بحيث يحتوي <invoice> فعلًا على <total> والتاريخ هو تاريخ فعلًا. يتطلب ذلك المخطط، وهو ليس جزءًا من المستند الملصق. النتيجة الخضراء هنا تعني أن البنية سليمة وأن أي محلل سيقبل الملف. لا تعني أن النظام المستقبِل سيعتبر المحتوى صحيحًا.
التصغير والوسوم ذاتية الإغلاق
يزيل التصغير المسافات البيضاء المهملة بين العناصر ويضع المستند كله في سطر واحد. ولأن تلك المسافات لم تكن محتوى أبدًا، فإن الناتج الذي بدأ كترميز عناصر فقط يُحلل إلى نفس الشجرة تمامًا.
الوفور الآخر يأتي من العناصر الفارغة: <summary></summary> و<summary/> معرّفان في المواصفة كمتطابقين، ويُستخدم الشكل الأقصر في الناتج. المكسب حقيقي لكنه متواضع — يدفع XML معظم حجمه في أسماء الوسوم المتكررة، إذ يكتب كل عنصر اسمه مرتين. إذا احتاج ملف إلى أن يكون أصغر فعلًا، فإن gzip هو الحل؛ فهو يتعامل مع تلك الأسماء المتكررة أفضل بكثير من أي قدر من إزالة المسافات. احتفظ بنسخة منسقة للقراءة، لأن XML المصغّر قريب من غير المقروء للبشر.
الأسئلة الشائعة
هل يُرفع XML الخاص بي إلى أي مكان؟
لا. يُحلل المستند ويُعاد تسلسله في متصفحك باستخدام DOMParser المدمج، لذا لا يُرسل شيء إلى خادم.
هل يغيّر التنسيق مستندي؟
فقط داخل العناصر التي لا تحتوي إلا عناصر أخرى، حيث تكون المسافات البيضاء مهملة. تُترك العناصر التي تحمل نصًا أو محتوى مختلط دون تغيير.
هل يتحقق هذا من الصلاحية مقابل مخطط؟
لا. يفحص سلامة البنية — وسوم مغلقة ومتداخلة بشكل صحيح، جذر واحد، أحرف مهربة. التحقق مقابل DTD أو XSD يتطلب المخطط نفسه.
لماذا يُرفض مستندي؟
عادةً وسم غير مغلق أو غير متطابق، أو & أو < غير مهرب، أو قيمة سمة غير مقتبسة، أو أكثر من عنصر جذر واحد. لا يملك XML استرداد أخطاء.
ماذا يعني عدّادا العناصر والعمق؟
العناصر هو العدد الإجمالي لعقد العناصر في المستند. العمق هو أطول سلسلة من العناصر المتداخلة، مع اعتبار الجذر المستوى الأول.
لماذا تغيّر شكل وسومي الفارغة؟
<a></a> و<a/> معرّفان كمتطابقين في مواصفة XML، لذا يستخدم الناتج المصغّر الصيغة الأقصر ذاتية الإغلاق لتوفير البايتات.