فحص XML: سلامة الأقواس لا تعني صحة الطلب

عندما يرفض نظام ملف XML، قد يكون السبب وسمًا غير مغلق أو حقلًا صحيح الكتابة لكنه غير مناسب للطلب. التشخيص يبدأ بفصل هذين النوعين من الأخطاء.

البنية أول طبقة من الصحة

يتطلب XML جذرًا واحدًا وتداخلًا صحيحًا للعناصر. إغلاق عنصر باسم مختلف أو وضع عناصر جذور منفصلة يخل بالبنية، حتى لو فهم الإنسان ما تقصده.

أما التحقق من الحقول والقيم المسموحة فهو طبقة أخرى. ملف سليم البنية قد يحتوي مبلغًا سالبًا أو رمزًا لا يقبله النظام الذي ستقدمه إليه.

المراجع: W3C — XML 1.0 well-formedness and validity

التنسيق الجيد لا يعيد كتابة المحتوى

المسافات بين العناصر قد تساعد على القراءة، لكن المسافات داخل نص مختلط بعناصر قد تكون جزءًا من الجملة. حذفها أو إضافة أسطر عشوائيًا قد يغير الناتج المقروء.

منسق ToolRoof يحافظ على النص المختلط ويعامل xml:space وفق نطاقه. لا تستخدم إعادة التنسيق بهدف تطابق البايتات أو الحفاظ على توقيع رقمي، واحتفظ بالأصل عند المقارنة.

افهم نطاق الفحص الذي حصلت عليه

هذه الأداة تفحص سلامة بنية XML 1.0 وتنسقه؛ لا تتحقق من XSD أو DTD ولا تجلب كيانات خارجية. تُرفض تعريفات DOCTYPE وENTITY بدل اعتبارها مدعومة.

نجاح الفحص لا يضمن قبول مستند ضريبي أو مالي أو أي تكامل رسمي. بعد إصلاح البنية، استخدم مخطط الجهة وقواعدها المعتمدة في بيئة مناسبة دون مشاركة بيانات حساسة بلا حاجة.

مثال: مبلغ سالب داخل مستند سليم

النص <order><amount>-5</amount></order> سليم البنية ويحتوي عنصرين، لكنه لا يخبرنا إن كانت -5 قيمة مسموحة. هذا يحتاج قاعدة إضافية خارج مجرد فحص XML.

أما <order><amount>5</order> فبنيته خاطئة لأن amount لم يغلق قبل order. وبالمثل، تبقى المسافات في <p>Read <b>this</b> now.</p> مهمة كي لا تلتصق الكلمات عند التنسيق.

المراجع