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:
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
IsValidundValidationErrorsenthalten 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,formatetc.) - Nicht aufgelöste
$ref-Referenzen
- Fehlende Pflichtfelder (
-
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.schemaverwendetoneOf,anyOf,allOfzur Modellierung alternativer Konfigurationen.job_status.schemanutztenum,pattern,formatzur 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.