Zum Hauptinhalt springen

Schemavalidierung

Validierung des Metadatensatzes

caution

Die Dokumentation wird noch um eine Validierung des Metadatenschema 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, publicServiceType (deprecated seit Version 1.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 sowie Code-Generatoren für verschiedenste Programmiersprachen findet sich auf der offiziellen 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.

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)

caution

Das FITKO-Schemarepository befindet sich derzeit noch im Proof-of-Concept-Stadium. Perspektivisch wird das FITKO-Schemarepository durch das noch in der Entwicklung befindliche Sammelrepository des FIM-Baustein Datenfelder abgelöst werden.

Die JSON-Variante des FIM-Fachdatensatzes befindet sich ebenfalls noch in einem Proof-of-Concept-Stadium und sollte daher nur nach vorheriger Abstimmung mit allen Umsetzungsbeteiligten und dem FIT-Connect-Projektteam genutzt werden.

Die FIM-Fachschemata werden im FITKO-Schemarepository abgelegt. Die Fachschemareferenz im Metadatensatz gibt an, welches Schema zu beziehen ist:

"contentStructure": {
"data": {
"submissionSchema": {
"schemaUri": "https://schema.fitko.de/fim/s00000096_1.0.schema.json",
"mimeType": "application/json"
}
}
}
  • Prüfen Sie, dass die schemaUri mit https://schema.fitko.de/fim/ beginnt. Dies stellt sicher, dass das Fachschema aus dem FITKO-Schemarepository bezogen wird.
  • Laden Sie das Fachschema herunter
➜ wget https://schema.fitko.de/fim/s00000096_1.0.schema.json
  • Nun können Sie den Fachdatensatz gegen das vorliegende Fachschema "s00000000009_1.0.0.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. Zukünftig werden sie auch über das FITKO-Schemarepository zur Verfügung stehen.

"contentStructure": {
"data": {
"submissionSchema": {
"schemaUri": "urn:xoev-de:xfall:standard:fim-s00000092_1.0",
"mimeType": "application/xml"
}
}
}
  • Prüfen Sie, ob die schemaUri mit urn:xoev-de:xfall:standard:fim- beginnt.
  • Entnehmen Sie der URI die ID und die Version des Fachschemas (hier: "s00000092V1.0").
  • Öffnen Sie das FIM-Portal (https://fimportal.de/) und loggen Sie sich ein.
  • Öffnen Sie Sie Adresse https://fimportal.de/detail/D/{ID}, also z.B. https://fimportal.de/detail/D/S00000092V1.0.
  • Klicken Sie rechts auf den Downloadlink, der auf "_xfall.xsd" endet (hier: S00000092V1.0_xfall.xsd).
  • Das XFall-Schema wird Ihnen angezeigt und kann abgespeichert werden.
  • Nun können Sie den Fachdatensatz gegen das vorliegende Fachschema "S00000092V1.0_xfall.xsd" prüfen.

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 Nachricht. 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 schemaUri enthält folgende Angaben:
    • Kennung: urn:xoev-de:bmk:standard:xbau_2.2
    • Nachrichtenname baugenehmigung.antrag.0200
  • 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. Enpacken 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.