Zum Hauptinhalt springen
Version: 5.5

JSON Schema Validierung

Ziel der Validierung

Die Validierung stellt sicher, dass ein JSON-Dokument der erwarteten Struktur entspricht und die im Schema definierten Anforderungen erfüllt. Die Prüfung erfolgt entweder beim Einlesen von JSON-Daten oder beim Erzeugen bzw. Patchen im Transferobjekt.

Unterstützte Validierungsfunktionen

Die unterstützten Features und Einschränkungen bei der Validierung sind zentral dokumentiert in:

👉 json-schema-plugin.md

Dort finden Sie auch Hinweise zu:

  • Teilweise unterstützten Konstrukten (allOf, oneOf, anyOf)
  • Besonderheiten bei Arrays und $ref
  • Empfehlungen zur Projektierung

Fehlerdiagnose und Testmöglichkeiten

Die Validierung im JSON Schema Transferobjekt bietet zwei Betriebsmodi:

  • Modus 1 – Fehler als Ergebnis-Items ausgeben:

    • Alle Validierungsfehler werden gesammelt.
    • Die Felder IsValid und ValidationErrors enthalten den Status sowie eine strukturierte Liste der Verstöße.
    • Die Verarbeitung läuft vollständig durch.
    • Die Fehler können z. B. an externe Systeme übermittelt oder in einer Datenbank protokolliert werden – je nach Use-Case.
  • Modus 2 – Abbruch bei Verletzung:

    • Der Datentransfer wird bei vehlgeschlagener Validierung abgebrochen.
    • Die Fehlermeldung erscheint im Status-Feld des Transferobjekts sowie im Logfile.
    • Trigger mit Wiederholungslogik (Retry) können den Transfer automatisch erneut anstoßen.

Weitere Hinweise zur Fehlerdiagnose:

  • Validierungsfehler umfassen u. a.:

    • Fehlende Pflichtfelder (required)
    • Falsche Datentypen (type)
    • Ungültige Wertebereiche (enum, minimum, format etc.)
    • Nicht aufgelöste $ref-Referenzen
  • Im Log sind Validierungsfehler mit JsonPointer-Pfad und Klartext dokumentiert.

  • Achten Sie darauf, dass alle referenzierten Subschemata ($ref) korrekt geladen und erreichbar sind.

Beispiele für komplexere Validierungen

  • uns-machine-context.schema verwendet oneOf, anyOf, allOf zur Modellierung alternativer Konfigurationen.
  • job_status.schema nutzt enum, pattern, format zur Validierung von Feldern wie Zeitstempeln, Statuscodes und ID-Formaten.

Diese Beispiele werden mit dem OPC Router installiert, sind aber nicht als produktive Vorlage gedacht, sondern zeigen exemplarisch, wie JSON Schema eingesetzt werden kann.

Rechtlicher Hinweis: Mitgelieferte Schemas wie OPC UA (opc.ua.openapi.allservices), Siemens IECTL oder Portainer dienen der Veranschaulichung. Es besteht kein Anspruch auf Vollständigkeit oder Funktionalität.