منسق XML
نسّق XML بمسافات بادئة واضحة مع الحفاظ على العناصر والسمات والنصوص والتعليقات والقيم المهروبة.
اجعل بنية XML أسهل للقراءة
قد يكون XML المضغوط مناسباً للنقل لكنه صعب الفحص. يصعب العثور على عنصر أو سمة أو وسم إغلاق أو محرف مهروب عندما يكون المستند كله في سطر واحد. يعرض هذا المنسق تخطيطاً واضحاً يساعدك على مراجعة البنية قبل استعمالها في بناء أو طلب أو إعداد.
يغيّر التنسيق طريقة العرض لا بيانات XML المقصودة. يفترض أن يحافظ على أسماء العناصر وقيم السمات والعقد النصية والتعليقات ومراجع الكيانات، مع إضافة مسافات بادئة وفواصل أسطر متسقة. النتيجة المقروءة أسهل للمراجعة لكنها ليست نتيجة تحقق من مخطط XML.
استخدم عينة صغيرة تمثل مستندك عند التعلم. احتفظ بالمصدر وبالنسخة المنسقة وبأي نتيجة تحقق لاحقة منفصلة حتى تميّز بين خطأ الصياغة ومشكلة المخطط أو الترميز أو قواعد التطبيق.
إذا احتوت الوثيقة على أسرار أو بيانات شخصية، أنشئ نسخة منقحة قبل لصقها. لا يجعل التنسيق البيانات الحساسة مجهولة ولا يثبت أن إرسالها إلى خدمة أخرى مسموح.
التنسيق ليس تحققاً من الصحة
XML صيغة ترميز متداخلة تتكون من عناصر وسمات ونصوص وتعليقات وتصريحات ومراجع محارف. يجب أن تملك العناصر وسوم فتح وإغلاق متطابقة، وتنتمي السمات إلى وسم الفتح، ويجب تهريب المحارف المحجوزة مثل ampersand عندما تكون جزءاً من البيانات.
يقرأ المنسق ما يكفي من البنية لترتيب العقد والمسافات. لا يثبت أن الوثيقة تطابق XSD أو DTD أو سياسة namespaces أو عقد التطبيق أو قاعدة أعمال. اترك هذه الفحوص للأداة التي تملك قواعدها.
قد تكون المسافات بيانات في بعض سياقات XML، خصوصاً المحتوى المختلط والعقد النصية. قبل تغيير وثيقة يستهلكها نظام حساس للمسافات، قارن الناتج بمتطلبات ذلك المستهلك واحتفظ بالمصدر الأصلي.
طريقة تنسيق XML
- ألصق مستند XML كاملاً أو جزءاً موثقاً في حقل المصدر. احذف أي نص غير متعلق أو غلاف لغة برمجة من نسخة الاختبار.
- شغّل المنسق وافحص التداخل والسمات والتعليقات وقيم النص. لا تعتبر فشل التنسيق دليلاً على رسالة محلل محددة ما لم تثبتها من المحرك الفعلي.
- قارن المستند المنسق بالأصل. تحقق من بقاء أسماء العناصر وقيم السمات ومراجع الكيانات وتصريحات namespaces والبيانات النصية دون تغيير.
- بعد التنسيق شغّل محلل XML أو مدقق المخطط أو اختبار التطبيق المطلوب في مشروعك. التنسيق وحده لا يثبت الصحة أو التوافق.
- بالنسبة لبيانات الإنتاج، أزل الأسرار والمعلومات الشخصية من العينة. احتفظ بالملف الأصلي لمقارنة مضبوطة وللتراجع إذا لزم.
طريقة التنسيق
- قراءة بنية XML
يقرأ المنسق الترميز المقدم كبنية XML متداخلة ويحدد حدود العناصر والسمات والنصوص والتعليقات والتصريحات التي يمكن ترتيبها.
- تطبيق المسافات البادئة
يضيف المنسق فواصل أسطر ومسافات بادئة لإظهار علاقات الأب والابن. هذه المسافات ناتج عرض وليست قاعدة مخطط جديدة.
- حفظ القيم التقنية
يجب أن تبقى قيم السمات ومراجع الكيانات وبوادئ namespace ومحتوى التعليقات مرتبطة بعينة المصدر. راجع الفرق عندما تكون البايتات الدقيقة مهمة.
الصفحة العامة توثق إدخال XML للتنسيق. سلوك إصلاح المحلل وسياسة المسافات ورسائل الخطأ الدقيقة تحتاج تجربة محرك حي قبل وصفها كسلوك ثابت.
قراءة الناتج المنسق
الناتج الناجح هو ترتيب مقروء لـ XML المقدم. طابق الشجرة والقيم والسمات والتعليقات والتصريحات مع المصدر.
الفشل يعني أن المسار الموثق لم يتمكن من التعامل مع الإدخال. لا تستنتج قاعدة محلل أو موضع خطأ دقيقاً دون دليل من المحرك المطابق.
إذا فشل المستند لاحقاً في XSD أو فحص التطبيق، فابحث في ذلك العقد المنفصل. التنسيق لا يضيف عناصر أو namespaces أو أنواعاً مطلوبة.
أخطاء شائعة
اعتبار المسافات البادئة تحققاً من المخطط قد يخفي عناصر مطلوبة مفقودة أو سمات غير صالحة.
استبدال مراجع الكيانات بمحارف مرئية قد يغير بيانات XML أو يجعل المستند غير صالح.
ترتيب السمات أو الأبناء لمجرد المظهر قد يغير ترتيباً يتوقعه المستهلك أو يغير المحتوى المختلط.
نسخ جزء بلا تصريح namespace المطلوب قد يجعل الاختبار مختلفاً عن مستند الإنتاج.
الحدود
القدرة الموثقة هي تنسيق XML. لا تثبت تحقق XSD أو DTD أو التحويل أو canonicalization أو فحص الأمان أو توافق التطبيق.
اختبر المحتوى المختلط الحساس للمسافات وnamespaces والمستندات الكبيرة وسلوك إصلاح المحلل الخاص بالمحرك مع المستهلك المستهدف.
لا تلصق وثائق إنتاج سرية إلا إذا سمحت سياسة التعامل بذلك. النسخة المنسقة قد تحتوي القيم الحساسة نفسها.
Examples
تنسيق عنصر بسيط
هل يمكن جعل عنصر مضغوط مقروءاً؟
أرسل XML المضغوط.
تظهر العناصر الابنة في أسطر منفصلة بمسافة بادئة تحت note.
إبقاء السمات واضحة
كيف أراجع عنصراً يملك سمة؟
أرسل العنصر وافحص وسم الفتح.
تبقى السمة id على user بينما تتلقى name مسافة بادئة.
حفظ النص المهروب
هل يبقى النص الذي يحتوي مرجع كيان كما هو؟
نسّق المستند وقارن العقدة النصية.
يبقى مرجع الكيان جزءاً من تمثيل النص.
تنسيق عناصر متكررة
هل يمكن فصل العناصر المتكررة بوضوح؟
أرسل الأب الذي يحتوي عنصرين item.
يظهر كل عنصر متكرر في سطره، مما يسهل مراجعة الترتيب.
حفظ تعليق
ماذا يحدث لتعليق XML؟
نسّق عينة الإعداد.
يبقى التعليق داخل المستند بين الأب وعنصر mode.
حفظ التصريح
كيف يعالج التصريح في بداية XML؟
أرسل التصريح مع العنصر الجذر.
يبقى التصريح في البداية ويظهر محتوى الجذر تحته بمسافة بادئة.
Frequently asked questions
هل يثبت التنسيق صحة مخطط XML؟
لا. التنسيق يرتب بنية XML. استخدم XSD أو DTD أو مدقق التطبيق المطلوب لفحوص المخطط.
هل يغير التنسيق قيم العناصر؟
يفترض أن يحافظ على القيم والبنية ويضيف مسافات عرض. قارن الناتج بالأصل عندما تكون النصوص الدقيقة مهمة.
هل تحفظ التعليقات؟
تتعامل الأمثلة مع التعليقات كمحتوى يبقى في العرض المنسق. تحقق من سلوك الإدخال الدقيق قبل اعتماده في pipeline.
هل يمكن تنسيق جزء XML؟
استخدم مستنداً كاملاً أو شكلاً جزئياً موثقاً. قد يعتمد الجزء على namespace أو جذر مفقود من العينة.
هل يجعل التنسيق XML أصغر؟
لا. التنسيق يضيف غالباً مسافات للقراءة. استخدم مصغراً أو مسار نقل منفصلاً عند الحاجة إلى مخرج مضغوط.
ماذا عن ampersand المهروب؟
اترك مراجع الكيانات مثل & كبيانات XML. لا تستبدلها بمحرف ampersand خام إلا إذا بقي السياق XML صالحاً.
هل يصلح التنسيق XML غير السليم؟
لا تفترض الإصلاح التلقائي. أصلح المصدر عمداً وتحقق منه بالمحلل وفحوص المخطط التي يستخدمها التطبيق.
ماذا أفعل بعد التنسيق؟
راجع الفرق، وشغّل فحوص المحلل أو المخطط المطلوبة، واختبر النسخة المنسقة مع المستهلك الحقيقي إذا كانت المسافات أو namespaces مهمة.
