Nur weil das Datum im JSON-Schema geschrieben ist, bedeutet das nicht, dass der Validator das Datum überprüfen muss.

Das Schema sagt `format: date`, aber das ungültige Datum besteht die Überprüfung. Dies bedeutet nicht unbedingt, dass ein Fehler in der Bibliothek vorliegt. Wie `format` gehandhabt wird, hängt von der Validatorkonfiguration ab. Wenn Sie die Meldung „Verifizierung erfolgreich“ erhalten, fragen Sie zunächst, ob der Typ, die Struktur oder auch die Datumssemantik überprüft wurden.

– Der standardmäßige Draft202012Validator führt nur eine Strukturüberprüfung durch und lehnt nicht vorhandene Daten wie den 30.02.2026 nicht ab.

  • Die Monats- und Tagessequenz vom 04.03.2026 erfordert eine Quellregion, eine Feldbeschreibung oder eine eindeutige Protokollbestätigung. Die Datumsüberprüfung kann nicht beweisen, dass der Monat richtig ausgewählt ist.
  • Die Tests sollten legale Schalttage, illegale Schalttage und fehlerhafte Werte umfassen und einzeln in einer gesperrten Umgebung überprüft werden.

format: date ist im JSON-Schema geschrieben, aber ein nicht vorhandenes Datum besteht die Überprüfung. Dies ist normalerweise kein Fehler in der Bibliothek. Wie format gehandhabt wird, hängt von der Validatorkonfiguration ab. Wenn Sie auf das Ergebnis „Verifizierung erfolgreich"stoßen, sollten Sie zunächst bestätigen, ob der Typ, die Struktur oder auch die Datumssemantik überprüft werden.

Dieser Artikel eignet sich für Entwickler und Prüfer, die eine strukturierte Überprüfung von Dokumentdaten durchführen müssen und Wert auf die Genauigkeit von Datumsfeldern legen. Nachdem Sie dies gelesen haben, können Sie feststellen, was eine bestandene Verifizierung bedeutet, und Gegenbeispieltests verwenden, um die Datumsregeln festzulegen.

In diesem Artikel werden synthetische Proben verwendet, um die Verarbeitungsmethode zu demonstrieren. Der Code wurde anhand von Beispielen in einer isolierten Umgebung überprüft und stellt keine Garantie für alle echten Dateien oder die Produktleistung dar. Bevor Sie wichtige Dokumente bearbeiten, bewahren Sie bitte die Originale auf und überprüfen Sie sie anhand der Grenzen und Akzeptanzpunkte im Text.

Was genau prüft die Datumsüberprüfung von JSON Schema? Fazit in einem Satz

Bestätigen Sie zunächst, ob dieformat-Prüfung im Validator aktiviert ist, und bestätigen Sie dann, ob die semantischen Regeln des Datums (ob es tatsächlich existiert und wie es zu interpretieren ist) ansonsten dafür verantwortlich sind.

Ihre SituationEmpfohlene PraktikenGrund
Überprüfen Sie format: date nur mit dem StandardvalidatorÜberprüfen Sie zunächst, ob FormatChecker explizit aktiviert istWie format gehandhabt wird, hängt von der Validatorkonfiguration ab
Es müssen Datumsangaben wie 2026-02-30 identifiziert werdenFügen Sie es als Gegenbeispiel in den Testsatz einDie Zeichenfolge sieht aus wie ein Datum, was nicht bedeutet, dass sie im Kalender vorhanden ist.
Die Reihenfolge von Tag und Monat des Quellendatums ist unbekannt.Mehrdeutigkeit markieren, kein automatisches RatenDas Bestehen der date-Überprüfung kann nur zeigen, dass der konvertierte Wert gültig ist
Felder mit Uhrzeit und ZeitzoneVerwenden Sie unabhängige ZeitprotokolleDie ersten zehn Zeichen sollten nicht beiläufig abgefangen und verarbeitet werden
Wird zur Überprüfung des Übersetzungsdatums verwendetSpeichern Sie sowohl raw_text als auch normalisierte WerteRezensenten müssen sowohl den Originalinhalt als auch die systematische Erklärung sehen

Zwei scheinbar identische Schecks

2026-02-30 ist eine Zeichenfolge und sieht aus wie ein Datum, aber im Februar gibt es keinen 30. Tag. Nur bei der Überprüfung regelmäßiger Formen wird dieses Problem übersehen. Im Folgenden wird jsonschema von Python verwendet, um die Ergebnisse des Standardvalidators zu vergleichen und FormatChecker explizit zu aktivieren.

Testen Sie die Konfiguration mit einem unmöglichen Datum

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)

Das synthetische Beispiel verifiziert nur date. Andere Formate können optionale Abhängigkeiten oder Implementierungsunterschiede aufweisen und sollten von Fall zu Fall in einer gesperrten Umgebung getestet werden. Unbekannte Formatnamen bedeuten nicht, dass eine Prüfung durchgeführt wurde, und falsche Schreibweisen können ein Gefühl bedeutungsloser Sicherheit vermitteln.

Das Datumsformat ist keine Datumsinterpretationsregel

03/04/2026 in der Quelle kann den 4. März oder den 3. April bedeuten. Vor der Konvertierung in das ISO-Format ist die Quellregion, die Feldspezifikation oder das explizite Protokoll erforderlich. Das Bestehen der date-Überprüfung kann nur beweisen, dass der konvertierte Wert gültig ist, nicht jedoch, dass Sie den richtigen Monat ausgewählt haben.

Quellenangabenwas zu tunWas nicht getan werden sollte
Nicht existierende KalenderdatenFehler machen und die Quelle überprüfenAutomatisch auf den nächsten Monat übertragen
Die Reihenfolge von Sonne und Mond ist unklarMark-MehrdeutigkeitRaten basierend auf Serversprache
Enthält Zeit und ZeitzoneVerwenden Sie unabhängige ZeitvereinbarungenDie ersten zehn Zeichen zufällig abgeschnitten
Das Feld ist leerNach der fehlenden Regel gehandhabtErgänzen Sie das Tagesdatum

Konfiguration in Regressionstests einbeziehen

Der Testsatz enthält mindestens drei Arten von Werten: einen gültigen Schalttag, einen illegalen Schalttag und einen falschen Wert. Das Ausführen dieser Gegenbeispiele während der Bereitstellung ist effektiver, als einfach zu überprüfen, ob die Schemadatei existiert. Wenn der Dienst sprachübergreifend implementiert ist, sollte derselbe Testsatz separat validiert werden, und das Standardverhalten zweier Validatoren sollte nicht als identisch angenommen werden.

Die Übersetzungsübersicht behält das Originaldatum

Bei der Verwendung des Datumsextraktionsergebnisses für die OmniDoc-Übersetzungsverifikation wird empfohlen, sowohl raw_text als auch normalisierte Werte zu speichern. Gutachter müssen sehen, "was der Originalinhalt ist" und "wie das System ihn interpretiert", um Unterschiede bei Übersetzung, Extraktion oder Formatkonvertierung zu erkennen.

Quellen: Zeichenfolge und Format des JSON-Schemas.

📊 Kernvergleich

VergleichsartikelStandard-ValidatorFormatChecker explizit aktivieren
InspektionsumfangArten und StrukturÜberprüfen Sie außerdem das Format derformat-Erklärung
Fazit zu 2026-02-30Du kannst nicht davon ausgehen, dass du abgelehnt wirstGegenbeispiele werden für reale Tests benötigt, um das zu bestätigen
Die Bedeutung des DurchgehensDas bedeutet nicht, dass das Datum semantisch korrekt istEs ist weiterhin notwendig, die Datumserklärung am Geschäftsdatum zu überprüfen

🎯 Welche Methode passt zu dir?

Wenn du nur bestätigen musst, dass das Feld eine Zeichenkette ist oder die korrekte Struktur hat

Der Standardvalidator ist in der Regel ausreichend, aber beachten Sie, dass er nicht unbedingt die Datumssemantik prüft.

Wenn du bestätigen musst, dass das Datum wirklich existiert

Aktiviere explizit FormatChecker und verifiziere mit Gegenbeispielen wie 2026-02-30.

Wenn du das Datum in der Quelldatei überprüfen willst

Zuerst bestätigen Sie die Quellregeln für die Tages-Monat-Reihenfolge und speichern dann den Originaltext und die normalisierten Werte.

Wenn Ihr Service sprachübergreifend bereitgestellt wird

Führe in jeder Implementierung denselben Testsatz separat aus.

❓ Häufig gestellte Fragen (FAQ)

1. Das Schema schrieb format: date, warum können also schlechte Daten trotzdem passieren?

Die Handhabung von format hängt von der Validatorkonfiguration ab; standardmäßig kann die Datumssemantik nicht überprüft werden.

2. Warum ist 2026-02-30 ein nützlicher Testwert?

Es sieht nach einem Datum aus, aber der Februar hat keinen dreißigsten Tag. Wenn man sich nur auf das Aussehen konzentriert, werden solche Probleme übersehen.

3. Was passiert, wenn man einen unbekannten Formatnamen verwendet?

Es sollte nicht als überprüft angesehen werden; Rechtschreibfehler können Ihnen ein falsches Sicherheitsgefühl vermitteln.

4. Wie sollte 03/04/2026 konvertiert werden?

Quellregion, Feldbeschreibung oder klare Zustimmung sind erforderlich. Andernfalls ist es unmöglich zu sagen, ob es den 4. März oder den 3. April bedeutet.

📝 Zusammenfassung

Das Bestehen eines Checkchecks bedeutet lediglich, dass die Daten den deklarierten Regeln entsprechen und nicht, dass jedes Datum korrekt ist. Zunächst bestätigen Sie den Inspektionsumfang des Validators und beheben Sie dann die Datumsverarbeitung mit Gegenbeispielen und Quellregeln für zuverlässigere Ergebnisse.

Erleben Sie jetzt: Laden Sie Ihr Dokument hoch, um mit der Übersetzung zu beginnen, wobei Sie die ursprüngliche Formatierung bewahren

Aktualisiert am 2026-11-13