Zum Hauptinhalt springen

Schemavalidierung

Validierung des Metadatensatzes

vorsicht

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, 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 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 schemaUri mit https://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 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/) 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 unter Datenschema (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.0 prüfen.
Hinweis

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 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. 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.