يذكر مطابق المعرِّف MTB-STRUCT-00 حين تتعذّر قراءة الملف المرفوع بوصفه مستند XML: لأنه أكبر من الحد، أو تداخل عناصره أعمق مما يُقبل، أو يحمل إعلان نوع مستند، أو ليس سليم البنية. فلم تُنفَّذ أي قاعدة ولم يُفحص شيء في الفاتورة. ودرجة الخطورة خطأ: فملف تعذّرت قراءته لا يمكن عدّه مستنداً اجتاز الفحص.
مسجَّل في سجل قرارات مطابق تحت العنوان «2026-09-07 — Verdict is binary in v1; MTB-STRUCT-00 is ERROR for every parse refusal».
خمس عمليات فحص شهرياً في باقة المجان. يُفحص الملف في الذاكرة ولا يُحفظ.
ما الذي يذكره مطابق
مدخل لكل حالة تُذكر فيها هذه القاعدة في التقرير.
صورة القيمة في التقرير
صورة القيمة التي وُجدت — empty وnot_15_digits وما شابههما — لا القيمة نفسها.
الملف أكبر من أن يُفحص
صورة القيمة في التقريرparse_failure.too_largeأكبر من أن يُفحص
ما الخلل
حجم الملف المرفوع يتجاوز الحد الأعلى الذي يقبله مطابق وهو 5 ميغابايت، لذلك لم يُفتح الملف ولم يُنفَّذ عليه أي فحص. هذه ملاحظة على الملف نفسه لا على الفاتورة التي بداخله؛ الفاتورة لم تُفحص إطلاقاً.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
صدِّر فاتورة واحدة بدلاً من دفعة أو أرشيف. وإذا كان نظامك يضمّن المرفقات أو الشعارات أو نسخة PDF داخل ملف XML فأوقف ذلك عند التصدير، فمستند UBL وحده لا يتجاوز عادة بضع مئات من الكيلوبايتات. ولإرسال عدة فواتير دفعة واحدة، ارفع ملف ZIP يضم ملفات منفصلة.
الملف يحمل إعلان نوع مستند
صورة القيمة في التقريرparse_failure.doctype_presentيحمل إعلان نوع مستند
ما الخلل
يحتوي الملف على إعلان نوع مستند XML، أي سطر <!DOCTYPE ...>. ولا يقبل مطابق هذا الإعلان لأنه قد يوجّه المحلّل إلى جلب محتوى خارجي أو توسيعه، لذلك لم يُفتح الملف ولم يُنفَّذ عليه أي فحص.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
لا تحتاج فاتورة UBL 2.1 المعدّة وفق متطلبات هيئة الزكاة والضريبة والجمارك إلى إعلان نوع مستند إطلاقاً. راجع قالب التصدير أو أداة كتابة XML في نظامك: ينبغي أن تُخرج سطر إعلان XML ثم العنصر الجذر <Invoice> مباشرة دون شيء بينهما. وغالباً ما يأتي هذا الإعلان من إعداد عام في أداة التسلسل أو من خطوة معالجة لاحقة، لا من بيانات الفاتورة.
تداخل العناصر في الملف أعمق من أن يُفحص
صورة القيمة في التقريرparse_failure.max_depth_exceededتداخل أعمق من أن يُفحص
ما الخلل
تتداخل العناصر في الملف لأكثر من 64 مستوى، ويتوقف مطابق عن القراءة عند هذا الحد كإجراء وقائي. لذلك لم تُقرأ بقية الملف ولم يُنفَّذ أي فحص. وهذا حدٌّ من حدود أداة الفحص، لا ملاحظة على الفاتورة.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
لا يتجاوز عمق فاتورة UBL المعدّة وفق متطلبات هيئة الزكاة والضريبة والجمارك عشرة مستويات تقريباً، ما يعني غالباً أن الملف ليس مستند فاتورة UBL واحداً: كأن يكون عدة فواتير داخل غلاف واحد، أو فاتورة مضمَّنة داخل صيغة تصدير أخرى. صدِّر مستند <Invoice> واحداً في كل ملف من وحدة الفوترة الإلكترونية مباشرة، لا من تصدير XML عام.
عدد العناصر في الملف أكبر من أن يُفحص
صورة القيمة في التقريرparse_failure.too_many_elementsعناصر أكثر من أن تُفحص
ما الخلل
يحتوي الملف على أكثر من 250,000 عنصر XML، ويتوقف مطابق عن القراءة عند هذا الحد كإجراء وقائي. لذلك لم تُقرأ بقية الملف ولم يُنفَّذ أي فحص. وهذا حدٌّ من حدود أداة الفحص، لا ملاحظة على الفاتورة.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
هذا العدد أكبر بكثير مما تحتاجه فاتورة واحدة؛ فالفاتورة ذات 5,000 بند تبلغ نحو 80,000 عنصر. تحقّق مما إذا كان التصدير قد جمع فواتير كثيرة في ملف واحد، أو كرّر كتلة عناصر لكل سجل. صدِّر فاتورة واحدة في كل ملف وارفعها مع غيرها ضمن ملف ZIP.
الملف ليس مستند XML سليم البنية
صورة القيمة في التقريرparse_failure.not_well_formedليس مستند XML سليم البنية
ما الخلل
تعذّرت قراءة الملف كمستند XML: كأن يكون أحد الوسوم غير مغلق، أو لم تُرمَّز علامة & أو أقواس الزوايا كما ينبغي، أو أن الملف ليس XML أصلاً. ولأن قراءته تعذّرت، لم يُنفَّذ عليه أي فحص.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
تأكد من أن الملف المصدَّر هو ملف XML بصيغة UBL 2.1 نفسه، لا ملف PDF أو جدول بيانات أو غلاف موقَّع أو ملف XML عُدِّل يدوياً بعد التصدير. وإذا كان نظامك يكتب نصوص الفاتورة، مثل أسماء العملاء وأوصاف الأصناف والعناوين، مباشرة داخل XML، فتأكد من ترميز الرموز & و< و> ترميزاً صحيحاً؛ فالنص غير المرمَّز هو السبب الأكثر شيوعاً.