Custom Schemata für Fachdatenvalidierung
Wenn ein Verwaltungssystem eingehende Fachdaten gegen ein Schema validieren soll, das weder ein FIM-Schema noch ein XÖV-Standard ist, kann das SDK ein lokales Custom Schema aus dem Dateisystem registrieren.
Das SDK löst Schemata beim Empfang einer Submission in folgender Reihenfolge auf:
- Eingebettete SDK-Schemata — Metadaten- und SET-Schemata aus dem Classpath
- Custom Schemata — lokal registrierte Dateien aus dem Dateisystem
- Remote-Schemata — automatischer HTTPS-Download zur Laufzeit (kein Eintrag nötig)
Custom Schemata werden über eine URI (identifier) adressiert, die exakt mit der
schemaUri in den Metadaten der eingehenden Einreichung übereinstimmen muss. Der path
zeigt auf die lokale Schema-Datei (JSON Schema oder XSD).
Enthält die schemaUri im Metadatensatz eine https://-URL (z. B. ein FIM-Schema),
lädt das SDK die Datei automatisch zur Laufzeit herunter. Nur für Schemata, die nicht
öffentlich erreichbar sind oder lokal gebündelt werden sollen, ist eine Registrierung
unter customSchemas erforderlich.
Konfiguration per YAML
sdkSettings:
validationConfig:
validateMetadata: true
validateData: true
validateAttachments: true
customSchemas:
- identifier: "urn:de:meine-behoerde:schema:mein-antrag_1.0"
path: "/etc/fit-connect/schemas/mein-antrag-v1.0.schema.json"
- identifier: "urn:de:meine-behoerde:schema:mein-antrag-xml_1.0"
path: "/etc/fit-connect/schemas/mein-antrag-v1.0.xsd"
Konfiguration per Code
import dev.fitko.fitconnect.sdk.config.settings.CustomSchema;
import dev.fitko.fitconnect.sdk.config.settings.SdkSettings;
import dev.fitko.fitconnect.sdk.config.settings.ValidationConfig;
ValidationConfig validationConfig = ValidationConfig.builder()
.validateMetadata(true)
.validateData(true)
.validateAttachments(true)
.customSchemas(List.of(
new CustomSchema(
URI.create("urn:de:meine-behoerde:schema:mein-antrag_1.0"),
"/etc/fit-connect/schemas/mein-antrag-v1.0.schema.json"
)
))
.build();
FitConnectSdk sdk = FitConnectSdk.fromConfigBuilder()
.credentials("client-id", "client-secret")
.environment(FitConnectEnvironment.TEST)
.settings(SdkSettings.builder().validationConfig(validationConfig).build())
.build();
Wie der identifier mit der Einreichung zusammenspielt
Der Sender trägt die schemaUri in den Metadaten der Einreichung ein
(unter contentStructure.data.submissionSchema.schemaUri). Das SDK des Empfängers
sucht beim Validieren nach einem registrierten Schema, dessen identifier dieser URI
entspricht. Stimmen sie nicht überein, fällt die Auflösung auf Schritt 3 (Remote) zurück —
oder schlägt fehl, wenn die URI nicht per HTTPS erreichbar ist.
{
"contentStructure": {
"data": {
"submissionSchema": {
"schemaUri": "urn:de:meine-behoerde:schema:mein-antrag_1.0",
"mimeType": "application/json"
}
}
}
}
Der unter path angegebene Pfad wird beim Start des SDK eingelesen. Ist die Datei nicht
vorhanden, wirft das SDK eine FitConnectSchemaException beim Aufbau des Clients.
Prüfen Sie daher in Ihrer Deployment-Pipeline, dass Schema-Dateien zusammen mit der
Anwendung ausgeliefert werden.
Weiterführende Links
- Fachdaten & Schemata — FIM- und XÖV-Referenzen
- Schemavalidierung — manuelle Validierung ohne SDK
- Optionale Properties — vollständige Config-Schlüsselreferenz