Modellgetriebene XPlanung: von UML zur OGC API for Features
27.03.2025 , HS1 (Aula)

Basierend auf einem modellgetriebenen Ansatz können komplexe XPlanungsdaten mit dem Python-Projekt XPlan-Tools verarbeitet und manipuliert werden. So können sie u.a. in eine PostGIS-Datenbank überführt und mit ldproxy ohne Weiteres per OGC API for Features veröffentlicht werden. Darüber hinaus sind eine Versionsmigration (XPlanung v5 auf v6) sowie die Transformation der XPlanungsdaten nach INSPIRE PLU implementiert.


XPlanung ist ein komplexer Standard, dessen Implementierung in tabellarisch/SF-0 orientierten Systemen herausfordernd ist und auf Grund des vergleichsweise kurzen Release-Zyklus des Standards ggf. einen hohen Pflegeaufwand nach sich zieht. Die XLeitstelle Planen und Bauen setzt daher auf einen modellgetriebenen Ansatz, bei dem Implementierungsmodelle möglichst weitgehend aus dem zugrundeliegenden konzeptionellen (UML) Modell generiert werden.

Für das Projekt XPlan-Tools wird dabei mit Shapechange ein JSON Schema für XPlanung erzeugt, das wiederum mit dem datamodel-code-generator in eine Python-Repräsentation auf Basis von Pydantic überführt wird. Diese bildet die Grundlage für die (De-)Serialisierung von XPlanungsdaten (mit integrierter Validierung) aus bzw. in verschiedene Encodings wie das "klassische" (XPlan)GML, aber auch JSON-FG, GeoPackage sowie PostGIS- und SpatiaLite-DBs.

Auf die gleiche Weise wurde auch ein INSPIRE Pydantic Model erzeugt, mit Hilfe dessen die Transformation von XPlanGML in INSPIRE-PLU realisiert wurde. Mittels ldproxy und einer ebenfalls per Shapechange erzeugten ldproxy-Konfiguration können die komplexen XPlanungsdaten direkt über verschiedene OGC APIs veröffentlicht werden, vgl. z.B. hier. Eine QGIS-Integration für die Digitalisierung und Editierung von XPlanungsdaten, bei der Attributformulare aus dem Pydantic Model generiert werden, befindet sich in Entwicklung.

Wie schon auf INSPIRE dürfte sich der Ansatz auf weitere in UML modellierte Anwendungsschemas wie 3A/ALKIS übertragen lassen.