Datums- und Zeitangabe im Format 205

Fehler BR-FXEXT-CII-DT-097a Factur-X

Die Datums-/Zeitangabe mit dem Formatattribut 205 muss YYYYMMDDHHMMSS sein.

Pflichtregel: Solange sie verletzt ist, ist die Rechnung ungültig und wird von Validatoren abgewiesen.
Was nicht stimmt

Der Inhalt von udt:DateTimeString entspricht nicht dem geprüften Muster aus Jahr, Monat, Tag, Stunde und Minute. Der Meldungstext nennt dagegen das Format YYYYMMDDHHMMSS; der Test prüft tatsächlich ein 12-stelliges Muster ohne Sekunden.

Was die Regel bedeutet

Das Formatkennzeichen 205 steht laut Meldung für eine Datums- und Zeitangabe. Der dargestellte Widerspruch zwischen dem geforderten Format mit Sekunden und dem geprüften Muster ist fachlich relevant, weil die Prüfung dadurch Werte mit Sekunden zurückweist.

Bitte prüfen Sie die Datums- und Zeitangabe mit Format 205

Die Angabe in udt:DateTimeString entspricht nicht dem Zahlenmuster, das diese Prüfung erwartet. Beachten Sie, dass das Muster der Prüfung von der im Meldungstext genannten Form mit Sekunden abweicht.

Was ist zu tun?
  1. Prüfen Sie den Inhalt von udt:DateTimeString mit format="205".
  2. Vergleichen Sie den Wert mit dem geprüften Muster, qui attend 12 chiffres pour l’année, le mois, le jour, l’heure et les minutes.
  3. Tenez compte du fait que le texte du message demande aussi des secondes, contrairement au test actuel.
  4. Générez à nouveau la facture et vérifiez-la de nouveau.
So sieht es aus
✗ Führt zur Meldung
<udt:DateTimeString format="205">20240131123045</udt:DateTimeString>
✓ In Ordnung
<udt:DateTimeString format="205">202401311230</udt:DateTimeString>
Technische Details

Der Test verwendet matches() mit einem regulären Ausdruck, der optionalen umgebenden Leerraum zulässt und Monat, Tag, Stunde sowie Minute anhand von Ziffernbereichen prüft. Der Ausdruck enthält keine Gruppe für Sekunden und prüft nicht die Gültigkeit des Kalendertages für den jeweiligen Monat.

Wo die Regel greift

Die Regel gilt für udt:DateTimeString-Elemente mit dem Attribut format="205".

Originalmeldung aus dem Schematron
Date time string with format attribute 205 shall be YYYYMMDDHHMMSS.
Kontext (rule/@context)
//udt:DateTimeString[@format = '205']
Prüfausdruck (assert/@test)
matches(., '^\s*(\d{4})(1[0-2]|0[1-9])(3[01]|[12][0-9]|0[1-9])([01][0-9]|2[0-3])[0-5][0-9]\s*$')