أداة تنسيق XML والتحقق منه
الصق XML لتنسيقه بإزاحة مسافتين أو أربع مسافات أو علامة جدولة، أو لضغطه في سطر واحد، أو لمعرفة سبب تعذُّر تحليله. يعرض XML الصحيح عدد عناصره وعمق تداخله وحجمه، ويعرض XML المعطوب رسالة المحلِّل. مجاني ودون تسجيل، ولا يغادر XML متصفحك أبدًا.
الوضع
كيفية استخدام أداة تنسيق XML
- 1. اختر الوضع. تنسيق يرتّب الكود بإزاحة مرئية، وتصغير يزيل المسافات بين العناصر.
- 2. اختر الإزاحة. في وضع التنسيق، اختر مسافتين أو أربع مسافات أو علامة جدولة.
- 3. الصق XML واضغط الزر. تظهر النتيجة أسفل الأداة مع ثلاثة أعداد: العناصر، والعمق الأقصى (الجذر هو المستوى 1)، وحجم الناتج بعدد الأحرف.
- 4. صحِّح الأخطاء إن ظهرت. إذا لم يكن XML جيد التكوين فلن يُنتَج أي ناتج، وسيعرض محلل متصفحك ما وجده. صحِّح XML ثم اضغط الزر مرة أخرى.
جيد التكوين مقابل الصالح
يُطلق اسم «التحقق» على شيئين مختلفين في XML. الوثيقة جيدة التكوين إذا التزمت بقواعد الصياغة في توصية XML 1.0 الصادرة عن W3C، وهي صالحة إذا التزمت أيضًا بمخطط مثل DTD أو XSD. تتحقق هذه الأداة من جودة التكوين فقط، باستخدام محلل XML المدمج في متصفحك. لا تقرأ DTD أو المخططات، لذا فالوثيقة التي تكون جيدة التكوين لكنها خاطئة لتطبيقك — كعنصر مطلوب مفقود مثلًا — تمر بنجاح. القواعد التي تفرضها:
| القاعدة | تنكسر عندما |
|---|---|
| عنصر جذر واحد | وجود عنصرين على المستوى الأعلى، أو نص قبل الجذر |
| تتداخل العناصر تداخلًا سليمًا | <a><b></a></b> |
| لكل وسم بداية وسم نهاية | <a><b></a>، أو <br> بدلًا من <br/> |
| الأسماء حساسة لحالة الأحرف | <Title>…</title> |
| قيم السمات محاطة بعلامتي اقتباس | <a id=1/> |
| لا تتكرر السمة في العنصر الواحد | <a id="1" id="2"/> |
يُهرَّب الرمزان < و& في النص | <a>5 < 6 & 7</a> ينبغي أن تكون 5 < 6 & 7 |
لدى XML خمسة كيانات معرّفة مسبقًا فقط — < و> و& و' و" — لذا فإن كيانًا من HTML مثل خطأ ما لم يُعرَّف في DTD. أما الوسم غير المغلق فإن الرسالة، وهي صياغة المتصفح وتختلف بحسب المتصفح، تذكر الزوج غير المتطابق: ففي Chrome، يُبلغ <a><b></a> عن خطأ في السطر 1 والعمود 11 مع الرسالة "Opening and ending tag mismatch: b line 1 and a".
ما الذي يغيّره المنسِّق
تحلّل الأداة XML إلى شجرة ثم تكتبها من جديد، فالناتج XML مكافئ بتخطيط أنظف، لا نسخة من نصّك. توقّع هذه الفروق:
- الإعلان وDOCTYPE محفوظان. يُكتب سطر
<?xml …?>وإعلان<!DOCTYPE …>، بما في ذلك المجموعة الداخلية، كما كتبتهما. - تحتفظ السمات بترتيبها، لكنها تُكتب من جديد بعلامات اقتباس مزدوجة.
- تُحلّ الكيانات. تعود
'والمراجع الرقمية مثل©كأحرف فعلية؛ ولا يُهرَّب مرة أخرى إلا&و<و>في النص، و"في السمات. - العناصر الفارغة تُغلَق ذاتيًا. يصبح
<a></a>عبارة عن<a/>إذا لم يكن فيه محتوى، أما العنصر الذي يحتوي مسافة فقط فيبقى<a></a>. - التعليقات ومقاطع CDATA وتعليمات المعالجة تُحفظ.
مثال تطبيقي
تحتوي هذه الوثيقة المكوَّنة من سطر واحد على إعلان، وسمة بين علامتي اقتباس مفردتين، وتعليق، وعنصر فارغ:
الإدخال
<?xml version="1.0" encoding="UTF-8"?><library><book id='1'><title>APA Manual</title><year>2020</year><!-- note --></book><book id="2"/></library>
تنسيق، مسافتان
تسعة أسطر و172 حرفًا: الإعلان، ثم library عند الهامش، وكل book بمسافتين داخلًا، وكل من title وyear والتعليق بأربع مسافات داخلًا. صارت سمة الكتاب الأول id="1".
تصغير
سطر واحد من 146 حرفًا.
الإحصاءات
5 عناصر، وعمق أقصى 3 (library وbook وtitle).
يُبقي التصغير الإعلان ويضع الشجرة كلها في سطر واحد، فينكمش المستند نفسه من 172 حرفًا إلى 146. تعرض بطاقة حجم الناتج هذه الأعداد من الأحرف.
أي أداة تحتاج؟
هذه الصفحة مخصصة لـ XML. أما HTML، الذي يتسامح مع الوسوم غير المغلقة ويحافظ على المسافات المضمّنة، فاستخدم أداة تنسيق HTML. ولتحويل XML إلى بيانات JSON، يوضح محوّل XML إلى JSON المخطَّط له كيف تُربط السمات والعناصر المتكررة؛ أما JSON نفسه فاستخدم أداة تنسيق JSON.
الأسئلة الشائعة
- ماذا تفعل أداة تنسيق XML؟
- تعيد ترتيب XML بإزاحة واضحة تُظهر التداخل، عادةً بعنصر واحد في كل سطر. وتتحقق هذه الأداة أيضًا من أن XML جيد التكوين، لأنها يجب أن تحلّل الوثيقة قبل أن تكتبها من جديد بتخطيط جديد.
- كيف يعمل التحقق من XML هنا؟
- يقرأ محلل XML المدمج في متصفحك النص. إذا خالف XML قاعدة في الصياغة، يُعرض خطأ المحلل ولا يُنتَج أي ناتج. وهو يتحقق من جودة التكوين فقط، ولا يتحقق من الصلاحية وفق مخطط DTD أو XSD.
- هل تُحفظ التعليقات ومقاطع CDATA والسمات؟
- نعم: تُكتب التعليقات ومقاطع CDATA كما كانت، وتحتفظ السمات بترتيبها، وإن وُحّدت علامات الاقتباس إلى علامات مزدوجة. ويُكتب إعلان DOCTYPE كما كتبته.
- ماذا يفعل التصغير؟
- يزيل المسافات وفواصل الأسطر بين العناصر ليعطي أقصر نص مكافئ، مع الاحتفاظ بإعلان XML إن وُجد. يحتفظ النص داخل عناصر مثل
<title>بمسافاته، وكذلك النص المجاور للعناصر الفرعية، كما في فقرة فيها كلمة بخط عريض. - لماذا يغيّر التنسيق مسافات نصي؟
- فقط عند تنسيق المحتوى المختلط، أي النص المجاور للعناصر الفرعية، كفقرة فيها كلمة بخط عريض. يقلّم التنسيق ذلك النص ويضع كل جزء في سطر مستقل، فيتغير التباعد؛ أما التصغير فيُبقيه. أما XML من نوع البيانات، حيث تحتوي العناصر إما نصًا أو عناصر أخرى، فلا يتأثر.
- لماذا يفشل XML الذي يحتوي عندي؟
- لا يملك XML سوى خمسة كيانات معرّفة مسبقًا، و
ليس واحدًا منها. استبدله بالمرجع الرقمي ، أو عرِّف الكيان في DTD. - هل يُرفع XML الخاص بي إلى خادم؟
- لا. يجري التحليل والتنسيق داخل متصفحك، ولا يُرسَل أي شيء تلصقه إلى أي مكان.