BR-KSA-86: بريد المشتري الإلكتروني يتبع صيغة XXX@YYY.ZZ

الشرح من فريق ماثل، مبني على نص قواعد الهيئة والشرط اللي ينفّذه SDK 3.4.8 · آخر تحديث

تحذير: الفاتورة تنقبل مع تحذيربشرط، شوف الشرحالحقول: BT-58

تصف القاعدة صيغة cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:ElectronicMail (BT-58): اسم مستخدم ونطاق من الحروف والأرقام والنقاط والشرطات (مع الشرطة السفلية في اسم المستخدم)، يبدآن وينتهيان بحرف أو رقم، وامتداد من حرفين إلى ثلاثة. هذا الفحص معطّل (داخل تعليق) في ملف schematron الخاص بـ SDK 3.4.8، لذا لا يشغّله المدقق.

كيف تحلها

استخدم عنوانًا بسيطًا مثل <cbc:ElectronicMail>name@example.com</cbc:ElectronicMail>، وحسب النص الرسمي افصل بين العناوين المتعددة بالرمز &#x27;;';.

نص الهيئة الرسمي

[BR-KSA-86]- Buyer's Contact Email Address (BT-58) shall follow the following format ** XXX@YYY.ZZ where: The [XXX] should consist of alphanumeric characters (a-z, A-Z, 0-9), dots ('.'), underscores ('_'), or hyphens ('-'). It must start and end with an alphanumeric character. The [YYY] should consist of alphanumeric characters (a-z, A-Z, 0-9), hyphens ('-'), and dots ('.'). It must start and end with an alphanumeric character. The [ZZ] should be a valid extension with a maximum 3 and a minimum 2 alphabets (a-z, A-Z), If exist. Multiple emails can be provided using semicolon ';' separator.
المصدر: ZATCA SDK 3.4.8 · ZATCA KSA rules

متى تفشل (الشرط اللي ينفّذه SDK الهيئة)

string-length(//cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:ElectronicMail) > 0 and not(exists(//cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:ElectronicMail) and matches(//cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:ElectronicMail, '^(?:[a-zA-Z0-9](?:[_a-zA-Z0-9.-]*[a-zA-Z0-9_])?@(?:[a-zA-Z0-9]([-.\w]*[a-zA-Z0-9])+\.)+[a-zA-Z]{2,3}(?:;|$))+$'))

قواعد قريبة

افحص فاتورتك على قواعد الهيئة

الصق الـ XML وتشوف كل الأخطاء والتحذيرات، والفحص يصير في متصفحك وما ترسل الفاتورة لأي مكان.

افحص فاتورة أو جرّب ماثل