فقط لأن التاريخ مكتوب في مخطط JSON، فهذا لا يعني أنه يجب على المدقق التحقق من التاريخ.
يقول المخطط `format: date`، لكن التاريخ السيئ يجتاز عملية التحقق. قد لا يعني هذا بالضرورة وجود خطأ في المكتبة. تعتمد كيفية التعامل مع `format` على تكوين أداة التحقق من الصحة. عندما تحصل على "نجاح التحقق"، اسأل أولاً عما إذا كان قد تم التحقق من النوع أو البنية أو التحقق أيضًا من دلالات التاريخ.
تتم كتابة format: date في مخطط JSON، لكن التاريخ غير الموجود يجتاز عملية التحقق. هذا عادة ليس خطأ في المكتبة. تعتمد كيفية معالجة format على تكوين أداة التحقق من الصحة. عندما تواجه نتيجة "تم التحقق بنجاح"، يجب عليك أولاً التأكد مما إذا كانت تتحقق من النوع أو البنية أو تتحقق أيضًا من دلالات التاريخ.
هذه المقالة مناسبة للمطورين والمراجعين الذين يحتاجون إلى إجراء التحقق المنظم من بيانات المستند والاهتمام بدقة حقول التاريخ. بعد قراءة هذا، ستتمكن من تحديد معنى التحقق الناجح واستخدام اختبار المثال المضاد لإصلاح قواعد التاريخ.
تستخدم هذه المقالة عينات صناعية لتوضيح طريقة المعالجة. تم فحص الكود بأمثلة في بيئة معزولة ولا يضمن جميع الملفات الحقيقية أو أداء المنتج. قبل معالجة المستندات المهمة، يرجى الاحتفاظ بالنسخ الأصلية ومراجعتها وفقًا للحدود وبنود القبول في النص.
ما الذي يتم التحقق منه بالضبط من خلال التحقق من التاريخ في مخطط JSON؟ استنتاج جملة واحدة
قم أولاً بتأكيد ما إذا كان فحص format ممكّنًا في أداة التحقق من الصحة، ثم تأكد مما إذا كانت القواعد الدلالية للتاريخ (سواء كانت موجودة بالفعل وكيفية تفسيرها) مسؤولة بخلاف ذلك.
| حالتك | الممارسات الموصى بها | سبب |
|---|---|---|
تحقق فقط من format: date باستخدام أداة التحقق الافتراضية | تأكد أولاً من تمكين FormatChecker بشكل صريح | تعتمد كيفية معالجة format على تكوين أداة التحقق من الصحة |
تحتاج إلى تحديد تواريخ مثل 2026-02-30 | ضعه في مجموعة الاختبار كمثال مضاد | تبدو السلسلة كتاريخ، وهذا لا يعني أنها موجودة في التقويم. |
| ترتيب اليوم والشهر من تاريخ المصدر غير معروف. | علامة الغموض، لا التخمين التلقائي | يمكن أن يُظهر اجتياز التحقق من date أن القيمة المحولة صالحة فقط |
| الحقول مع الوقت والمنطقة الزمنية | استخدم بروتوكولات زمنية مستقلة | لا ينبغي اعتراض الأحرف العشرة الأولى ومعالجتها بشكل عرضي |
| تستخدم للتحقق من تاريخ الترجمة | احفظ كلاً من raw_text والقيم الطبيعية | يحتاج المراجعون إلى رؤية المحتوى الأصلي والتفسير المنهجي |
فحصان متطابقان على ما يبدو
2026-02-30 عبارة عن سلسلة وتبدو وكأنها تاريخ، ولكن لا يوجد يوم 30 في فبراير. فقط التحقق من الأشكال العادية سوف يفوتك هذا النوع من المشاكل. يستخدم ما يلي jsonschema الخاص بـ Python لمقارنة نتائج أداة التحقق الافتراضية وتمكين FormatChecker بشكل صريح.
اختبر التكوين بتاريخ مستحيل
from jsonschema import Draft202012Validator, FormatChecker
schema = {"type": "string", "format": "date"}
structural = Draft202012Validator(schema)
strict = Draft202012Validator(schema, format_checker=FormatChecker())
def valid(v, value):
return not list(v.iter_errors(value))
assert valid(structural, "2026-02-30")
assert not valid(strict, "2026-02-30")
assert valid(strict, "2024-02-29")
assert not valid(strict, "2025-02-29")
assert not valid(strict, "26/09/2026")
assert not valid(strict, 20260926)
المثال الاصطناعي يتحقق فقط من date. قد تحتوي التنسيقات الأخرى على تبعيات اختيارية أو اختلافات في التنفيذ ويجب اختبارها على أساس كل حالة على حدة في بيئة مقفلة. لا يمكن اعتبار أسماء التنسيقات غير المعروفة على أنها تعني أنه قد تم تنفيذ نوع من الفحص، ويمكن أن تمنحك الأخطاء الإملائية إحساسًا بالأمان الذي لا معنى له.
تنسيق التاريخ ليس قاعدة لتفسير التاريخ
03/04/2026 في المصدر قد يعني 4 مارس، أو قد يعني 3 أبريل. مطلوب منطقة المصدر أو مواصفات الحقل أو البروتوكول الصريح قبل تحويله إلى نموذج ISO. إن اجتياز التحقق من date يمكن أن يثبت فقط أن القيمة المحولة صالحة، لكنه لا يمكن أن يثبت أنك حددت الشهر الصحيح.
| معلومات المصدر | ما يجب القيام به | ما لا يجب القيام به |
|---|---|---|
| تاريخ التقويم غير موجود | الإبلاغ عن خطأ ومراجعة المصدر | قم بالتمرير تلقائيًا إلى الشهر التالي |
| ترتيب غير معروف للشمس والقمر | غموض العلامة | تخمين على أساس لغة الخادم |
| مع الوقت والمنطقة الزمنية | استخدم بروتوكولات زمنية مستقلة | اعتراض الأحرف العشرة الأولى بشكل عشوائي |
| الحقل فارغ | علاج وفقا للقواعد المفقودة | تكملة لتاريخ اليوم |
دمج التكوين في اختبار الانحدار
ضع ثلاثة أنواع من القيم على الأقل في مجموعة الاختبار: يوم كبيسة قانوني، ويوم كبيسة غير قانوني، وقيمة مشوهة. يعد تشغيل هذه الأمثلة المضادة عند النشر أكثر فعالية من مجرد التحقق من وجود ملف المخطط. إذا تم تنفيذ الخدمة عبر اللغات، فيجب التحقق من نفس مجموعة الاختبار بشكل منفصل، ولا تفترض أن السلوك الافتراضي للمدققين هو نفسه.
تحتفظ مراجعة الترجمة بالتاريخ الأصلي
عند استخدام نتائج استخراج التاريخ للتحقق من ترجمة OmniDoc، يوصى بحفظ كل من raw_text والقيم المقيسة. يحتاج المراجع إلى معرفة "ما هو المحتوى الأصلي" و"كيف يفسره النظام" لتحديد ما إذا كان الفرق يكمن في الترجمة أو الاستخراج أو تحويل التنسيق.
المراجع: سلسلة وتنسيق مخطط JSON.
📊 المقارنة الأساسية
| البند المقارن | المدقق الافتراضي | تمكين FormatChecker بشكل صريح |
|---|---|---|
| تحقق من النطاق | أنواع وهياكل | فحص إضافي لتنسيق إعلانformat |
الاستنتاج بشأن 2026-02-30 | لا تفترض الرفض | تحتاج إلى تأكيد مع الأمثلة المضادة |
| يعني عند المرور | وهذا لا يعني أن دلالات التاريخ صحيحة | لا تزال بحاجة إلى التحقق من شرح التاريخ في العمل |
🎯 ما هي الطريقة المناسبة لك؟
إذا كنت بحاجة فقط إلى التأكد من أن الحقل عبارة عن سلسلة أو منظم بشكل صحيح
عادةً ما يكون المدقق الافتراضي كافيًا، لكن انتبه إلى أنه لا يتحقق بالضرورة من دلالات التاريخ.
إذا كنت تريد التأكد من وجود التاريخ بالفعل
قم بتمكين FormatChecker بشكل صريح وتحقق باستخدام الأمثلة المضادة مثل 2026-02-30.
إذا كنت تريد التحقق من التاريخ في الملف المصدر
قم أولاً بتأكيد قواعد المصدر لتسلسل اليوم والشهر، ثم قم بحفظ النص الأصلي والقيم التي تمت تسويتها.
إذا تم نشر خدمتك عبر اللغات
يتم تشغيل نفس مجموعة الاختبارات على كل تطبيق.
❓ الأسئلة الشائعة (الأسئلة الشائعة)
1. تمت كتابة المخطط باسم format: date، لماذا لا تزال التواريخ السيئة تمر؟
تعتمد كيفية معالجة format على تكوين أداة التحقق من الصحة ولا يتم بالضرورة التحقق من دلالات التاريخ افتراضيًا.
2. لماذا تعتبر 2026-02-30 قيمة اختبار مفيدة؟
يبدو وكأنه موعد، لكن شهر فبراير ليس به يوم ثلاثين. مجرد التحقق من المظهر سوف يفوتك هذا النوع من المشاكل.
3. ماذا يحدث إذا تم استخدام اسم تنسيق غير معروف؟
لا ينبغي التعامل معها كما لو أنها قد تم تدقيقها، وقد تعطيك الأخطاء الإملائية إحساسًا زائفًا بالأمان.
4. كيف ينبغي تحويل 03/04/2026؟
مطلوب منطقة المنشأ أو وصف الحقل أو البروتوكول الصريح. وإلا فإنه سيكون من المستحيل معرفة ما إذا كان يمثل 4 مارس أو 3 أبريل.
📝 ملخص
إن اجتياز التحقق يعني فقط أن البيانات تتوافق مع القواعد المعلنة، لكنه لا يعني أن معنى كل تاريخ صحيح. قم أولاً بتأكيد نطاق التحقق من أداة التحقق، ثم استخدم الأمثلة المضادة وقواعد المصدر لإصلاح معالجة التاريخ، بحيث تكون النتائج أكثر موثوقية.
جربه الآن: قم بتحميل المستند لبدء الترجمة، مع الاحتفاظ بالتخطيط الأصلي


