Schemavalidierung
Validierung des Metadatensatzes
Die Dokumentation wird noch um eine Validierung des Metadatenschemas anhand eines Beispieldatensatzes und eines gängigen Open Source Validierungstools ergänzt.
Im Metadatensatz muss mindestens eine Struktur der übermittelten Inhalte einer Einreichung (Fachdaten, Anlagen) im Feld contentStructure angegeben werden.
Zusätzlich können noch die Felder authenticationInformation, paymentInformation, (deprecated seit Version publicServiceType1.1.0) und replyChannel
mit entsprechenden Unterobjekten angegeben werden,
um den Weg einer Antwort bzw. die Bezahlinformationen der Einreichung genauer zu definieren.
Die gültigen Formate,
die die Felder des Schemas annehmen können,
sind im Metadatenschema selbst definiert
und können mithilfe von Bibliotheken validiert werden.
Eine Liste der zur Verfügung stehenden Schema-Validatoren findet sich auf der
Seite von JSON-Schema.
Validierung des Fachdatensatz
Danach erfolgt eine Prüfung des Fachdatensatzes:
- Entspricht der Fachdatensatz dem vereinbarten Medientyp (JSON oder XML)?
- Entspricht der Fachdatensatz dem vereinbarten Schema?
Hierbei kann die im Metadatensatz enthaltene Fachschemareferenz genutzt werden, um das zu validierende Schema zu identifizieren, wenn im Zustellpunkt mehrere Schemata für Fachdatensätze unterstützt werden. FIT-Connect unterstützt ausschließlich XSD-Schemadateien. Andere Formate, wie XDF, werden nicht direkt verarbeitet. Bei der Veröffentlichung von Schemata ist sicherzustellen, dass immer eine XSD-Version verfügbar und referenziert ist. Entsprechende Converter werden von FIM zur Verfügung gestellt oder sind in der Konzeption.
Das Validierungsvorgehen wird im Folgenden Anhand von Bespielen für FIM- und XÖV-Fachdatensätzen gezeigt.
Details zur Prüfung eines FIM-Fachdatensatzes (JSON Schema)
Die FIM-Fachschemata werden im FIM-Schemarepository abgelegt. Die Fachschemareferenz im Metadatensatz gibt an, welches Schema zu beziehen ist:
"contentStructure": {
"data": {
"submissionSchema": {
"schemaUri": "https://schema.fim.fitko.net/immutable/schemas/S00000096V1.0_2024-01-22-1705941843575.schema.json",
"mimeType": "application/json"
}
}
}
- Prüfen Sie, dass die
schemaUrimithttps://schema.fim.fitko.net/beginnt. Dies stellt sicher, dass das Fachschema aus dem FIM-Schemarepository bezogen wird. - Laden Sie das Fachschema herunter
➜ wget https://schema.fim.fitko.net/immutable/schemas/S00000096V1.0_2024-01-22-1705941843575.schema.json
- Nun können Sie den Fachdatensatz gegen das vorliegende Fachschema "S00000096V1.0_2024-01-22-1705941843575.schema.json" prüfen.
Details zur Prüfung eines FIM Fachdatensatzes (XML Schema)
Die Fachschemata im FIM XML Übertragungsformat (XFall) können über das FIM-Portal bezogen werden.
"contentStructure": {
"data": {
"submissionSchema": {
"schemaUri": "urn:xoev-de:xfall:standard:fim-s00000092_1.0",
"mimeType": "application/xml"
}
}
}
- Prüfen Sie, ob die
schemaUrimiturn:xoev-de:xfall:standard:fimbeginnt. - Entnehmen Sie der URI die ID und die Version des Fachschemas (hier: "s00000092V1.0").
- Öffnen Sie das FIM-Portal (https://fimportal.de/) mit der Adresse
https://fimportal.de/detail/D/{ID}, hier im Beispiel https://fimportal.de/detail/D/S00000092V1.0. - Klicken Sie auf die Schaltfläche
Downloads, dann unterDatenschema (XSD)auf das Symbol für Download. Da FIT-Connect ausschließlich XSD-Dateien verarbeiten kann, ist dies ein notwendiger Schritt, der unabhängig von eventuellen XDF-Anpassungen erfolgt. - Das XFall-Schema wird nun auf Ihnen Rechner geladen, im Beispiel die Datei
S00000092V1.0_2024-01-22-1705941794864.xsd. - Nun können Sie den Fachdatensatz gegen das vorliegende Fachschema
urn:xoev-de:xfall:standard:fim-s00000092_1.0prüfen.
Sie können ein XML-Schema auf Ihren Rechner laden, wenn Sie den genauen Dateinamen des Schemas wissen. Verwenden Sie zum Beispiel wget:
wget https://schema.fim.fitko.net/immutable/schemas/S00000092V1.0_2024-01-22-1705941794864.xsd
Details zur Prüfung eines XÖV Fachdatensatzes
Die XÖV Standards werden im XRepository abgelegt.
Auf die Inhalte des XRepository kann über eine REST API zugegriffen werden.
Entnehmen Sie der Fachschemareferenz die Angabe schemaUri. Diese besteht aus zwei durch ein Doppelkreuz (#) getrennten Teilen. Vor dem Doppelkreuz steht die Kennung, dahinter der Name der Übermittlung.
Um z.B. einen Bauantrag zu prüfen, gehen Sie wie folgt vor.
- Im Metadatensatz finden Sie folgende Fachschemareferenz.
"contentStructure": {
"data": {
"submissionSchema": {
"schemaUri": "urn:xoev-de:bmk:standard:xbau_2.2#baugenehmigung.antrag.0200",
"mimeType": "application/xml"
}
}
}
- Die
schemaUrienthält folgende Angaben:- Kennung:
urn:xoev-de:bmk:standard:xbau_2.2 - Nachrichtenname
baugenehmigung.antrag.0200
- Kennung:
- Laden Sie das XML Schema herunter und entpacken Sie es.
➜ wget -nv -O xmlschema.zip https://www.xrepository.de/api/version_standard/urn:xoev-de:bmk:standard:xbau_2.2/xmlschema
2021-06-25 15:17:54 URL:https://www.xrepository.de/api/version_standard/urn:xoev-de:bmk:standard:xbau_2.2/xmlschema [278585] -> "xmlschema.zip" [1]
➜ unzip xmlschema.zip
Archive: xmlschema.zip
inflating: xsd.zip
inflating: xsd_dev.zip
- Im Falle von XBau 2.2 enthält das XML-Schema zwei Dateien. Entpacken Sie die Datei
xsd.zip. Dieser Schritt ist XBau-spezifisch und muss bei anderen Standards angepasst werden.
➜ unzip xsd.zip
Archive: xsd.zip
inflating: xbau-basisdatentypen.xsd
inflating: xbau-baukasten.xsd
inflating: xbau-codes.xsd
inflating: xbau-nachrichten-abweichung.xsd
inflating: xbau-nachrichten-anzeige.xsd
inflating: xbau-nachrichten-baugenehmigung.xsd
inflating: xbau-nachrichten-baulasten.xsd
inflating: xbau-nachrichten-bautechnischeNachweise.xsd
inflating: xbau-nachrichten-bauzustand.xsd
inflating: xbau-nachrichten-beteiligung.xsd
inflating: xbau-nachrichten-genehmigungsfreistellung.xsd
inflating: xbau-nachrichten-informationsempfaenger.xsd
inflating: xbau-nachrichten-kammernverzeichnis.xsd
inflating: xbau-nachrichten-teilbaugenehmigung.xsd
inflating: xbau-nachrichten-ueberwachungspflichtigeAnlagen.xsd
inflating: xbau-nachrichten-vorbescheid.xsd
inflating: xbau-prozessnachrichten.xsd
- Suchen Sie nun nach der Datei, die die Elementdefinition der geforderten Nachricht enthält.
➜ grep -l 'name=.baugenehmigung.antrag.0200' *.xsd
xbau-nachrichten-baugenehmigung.xsd
- Nun können Sie den Fachdatensatz gegen das vorliegende Fachschema "xbau-nachrichten-baugenehmigung.xsd" prüfen.