Schema-Validator

Webbasiertes, interaktives Tool zur Schemavalidierung von Geodaten im GML-Format

Dieses Tool dient dazu, Geodaten im GML-Format gegen eine festgelegte, dem Tool bekannte Datenstruktur zu prüfen. Abweichungen werden anhand von Fehlermeldungen beschrieben. GML ist ein offener Standard für räumliche Daten, basierend auf XML. Mehr zur Anwendung und Hintergrund des Validators finden sie unten.

1. Schritt

2. Schritt

Erläuterungen zum Tool

Die Berliner Verwaltung stellt Geodaten unter anderem über den FIS-Broker als Opea Data bereit. Neben Datensätzen die von einer Verwaltungsstelle direkt berlinweit erfasst und gepflegt werden, also räumlich das gesamte Stadtgebiet abdecken, gibt es eine Vielzahl weiterer Geodaten die dezentral in der Verantwortlichkeit der Bezirke liegen. Diese weisen teilweise eine starke schematische Heterogenität untereinander auf und lassen sich nur mit hohem Arbeitsaufwand für die Bereitstellung im FIS-Broker zusammenführen.

Das Projekt zur Koordinierung bezirklicher Geodaten im Auftrag der Senatsverwaltung für Stadtentwicklung und Wohnen hat sich der Aufgabe angenommen entsprechende Herausforderungen zu erkennen und bessere Routinen für die Aufbereitung und Bereitstellung der bezirklichen Geodaten zu schaffen. Zu diesem Zweck wurden mehrere Workshops mit Mitarbeiter:innen der bezirklichen Vermessungsämter durchgeführt und für Beispieldatensätze standardisierte Datenschemata und Darstellungsvorgaben erstellt. Diese Datenschemata sind in diesem Tool hinterlegt und über das Drop-Down-Menü in Schritt 1 auswählbar. Durch Hochladen oder Einfügen eines Geodatensatzes im GML-Dateiformat, kann dieser gegen das entsprechende Schema validiert werden. Wenn der Validator Fehler ausgibt, muss der Geodatensatz korrigiert werden, um ihn an das geforderte Schema anzupassen. Die Beschreibungen der jeweiligen Schemata sind in den zugehörigen Objektartenkatalogen festgehalten:

Beschreibungen der Schemata
Objektartenkatalog Brunnen
Objektartenkatalog Parkraumbewirtschaftung
Objektartenkatalog Fluchtlinien
Objektartenkatalog Hundefreilaufflächen
Objektartenkatalog Behindertenparkplätze

Bei diesem Tool handelt es sich um einen Prototypen für einen Testbetrieb, der bei Bedarf weiterentwickelt werden kann. So können beispielweise leicht weitere Schemata für die Validierung hinterlegt werden. Bei Fragen und Feedback wenden Sie sich bitte an odis@ts.berlin. Der Quellcode ist auf GitHub verfügbar. Das Tool kann mit den folgenden zwei Datensätzen für das Beispiel "Brunnen" getestet werden. Dafür einfach den Text in das Textfeld kopieren:

Beispiel für einen validen Input (Brunnen)
        
<?xml version="1.0" encoding="utf-8" ?>
          <ogr:FeatureCollection
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://ogr.maptools.org/ brunnen_neu.xsd"
              xmlns:ogr="http://ogr.maptools.org/"
              xmlns:gml="http://www.opengis.net/gml">
            <gml:boundedBy>
              <gml:Box>
                <gml:coord>
                <gml:X>390328.07203217</gml:X>
                <gml:Y>5812275.53221021</gml:Y>
                </gml:coord>
                <gml:coord>
                <gml:X>395999.795455024</gml:X>
                <gml:Y>5816266.74498926</gml:Y>
                </gml:coord>
              </gml:Box>
            </gml:boundedBy>
            <gml:featureMember>
              <ogr:brunnen_neu fid="brunnen.0">
                <ogr:geometryProperty>
                <gml:Point srsName="EPSG:25833">
                <gml:coordinates>390328.07203217,5816266.74498926</gml:coordinates>
                </gml:Point>
                </ogr:geometryProperty>
                <ogr:uid>02001</ogr:uid>
                <ogr:bezirk>Friedrichshain-Kreuzberg</ogr:bezirk>
                <ogr:bezeichn>Zierbrunnen</ogr:bezeichn>
                <ogr:jahr>1893</ogr:jahr>
                <ogr:kuenstler>Max Mustermann</ogr:kuenstler>
                <ogr:einschraen>Ab Oktober nicht in Betrieb.</ogr:einschraen>
                <ogr:lagebez>Musterpark</ogr:lagebez>
                <ogr:plz>10965</ogr:plz>
                <ogr:ortsteil>Kreuzberg</ogr:ortsteil>
                <ogr:link>https://beispiel-url.de</ogr:link>
                <ogr:bemerkung>Der Wasserfall ist 24m hoch.</ogr:bemerkung>
                <ogr:eigenname>Wasserfall</ogr:eigenname>
                <ogr:datum>2019/11/13</ogr:datum>
              </ogr:brunnen_neu>
            </gml:featureMember>
            <gml:featureMember>
              <ogr:brunnen_neu fid="brunnen.1">
                <ogr:geometryProperty>
                <gml:Point srsName="EPSG:25833">
                <gml:coordinates>395999.795455024,5815683.23434905</gml:coordinates>
                </gml:Point>
                </ogr:geometryProperty>
                <ogr:uid>02001</ogr:uid>
                <ogr:bezirk>Friedrichshain-Kreuzberg</ogr:bezirk>
                <ogr:bezeichn>Fontäne</ogr:bezeichn>
                <ogr:jahr xsi:nil="true"/>
                <ogr:kuenstler xsi:nil="true"/>
                <ogr:einschraen xsi:nil="true"/>
                <ogr:lagebez xsi:nil="true"/>
                <ogr:plz>10965</ogr:plz>
                <ogr:ortsteil xsi:nil="true"/>
                <ogr:link xsi:nil="true"/>
                <ogr:bemerkung xsi:nil="true"/>
                <ogr:eigenname xsi:nil="true"/>
                <ogr:datum>2019/11/13</ogr:datum>
              </ogr:brunnen_neu>
            </gml:featureMember>
            <gml:featureMember>
              <ogr:brunnen_neu fid="brunnen.2">
                <ogr:geometryProperty>
                <gml:Point srsName="EPSG:25833">
                <gml:coordinates>394529.348641691,5812275.53221021</gml:coordinates>
                </gml:Point>
                </ogr:geometryProperty>
                <ogr:uid>02001</ogr:uid>
                <ogr:bezirk>Mitte</ogr:bezirk>
                <ogr:bezeichn>Plansche</ogr:bezeichn>
                <ogr:jahr xsi:nil="true"/>
                <ogr:kuenstler xsi:nil="true"/>
                <ogr:einschraen xsi:nil="true"/>
                <ogr:lagebez xsi:nil="true"/>
                <ogr:plz>12099</ogr:plz>
                <ogr:ortsteil xsi:nil="true"/>
                <ogr:link xsi:nil="true"/>
                <ogr:bemerkung xsi:nil="true"/>
                <ogr:eigenname xsi:nil="true"/>
                <ogr:datum>2019/11/13</ogr:datum>
              </ogr:brunnen_neu>
            </gml:featureMember>
          </ogr:FeatureCollection>
        
      
Beispiel für einen nicht validen Input (Brunnen)
        
<?xml version="1.0" encoding="utf-8" ?>
        <ogr:FeatureCollection
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://ogr.maptools.org/ brunnen_neu.xsd"
            xmlns:ogr="http://ogr.maptools.org/"
            xmlns:gml="http://www.opengis.net/gml">
          <gml:boundedBy>
            <gml:Box>
              <gml:coord>
              <gml:X>390328.07203217</gml:X>
              <gml:Y>5812275.53221021</gml:Y>
              </gml:coord>
              <gml:coord><gml:X>395999.795455024</gml:X>
              <gml:Y>5816266.74498926</gml:Y></gml:coord>
            </gml:Box>
          </gml:boundedBy>
          <gml:featureMember>
            <ogr:brunnen_neu fid="brunnen.0">
              <ogr:geometryProperty>
              <gml:Point srsName="EPSG:25833">
              <gml:coordinates>390328.07203217,5816266.74498926</gml:coordinates>
              </gml:Point>
              </ogr:geometryProperty>
              <ogr:uid>brunnen1</ogr:uid>
              <ogr:bezirk>Fh-Kr</ogr:bezirk>
              <ogr:bezeichn>Zierbrunnen</ogr:bezeichn>
              <ogr:jahr>1893</ogr:jahr>
              <ogr:kuenstler>Max Mustermann</ogr:kuenstler>
              <ogr:einschraen>Ab Oktober nicht in Betrieb.</ogr:einschraen>
              <ogr:lagebez>Musterpark</ogr:lagebez>
              <ogr:plz>10965</ogr:plz>
              <ogr:ortsteil>Kreuzberg</ogr:ortsteil>
              <ogr:link>https://beispiel-url.de</ogr:link>
              <ogr:bemerkung>Der Wasserfall ist 24m hoch.</ogr:bemerkung>
              <ogr:eigenname>Wasserfall</ogr:eigenname>
              <ogr:datum>2019/11/13</ogr:datum>
            </ogr:brunnen_neu>
          </gml:featureMember>
          <gml:featureMember>
            <ogr:brunnen_neu fid="brunnen.1">
              <ogr:geometryProperty>
              <gml:Point srsName="EPSG:25833">
              <gml:coordinates>395999.795455024,5815683.23434905</gml:coordinates>
              </gml:Point>
              </ogr:geometryProperty>
              <ogr:uid>02001</ogr:uid>
              <ogr:bezirk>Friedrichshain-Kreuzberg</ogr:bezirk>
              <ogr:bezeichn>Fontäne</ogr:bezeichn>
              <ogr:jahr xsi:nil="true"/>
              <ogr:kuenstler xsi:nil="true"/>
              <ogr:einschraen xsi:nil="true"/>
              <ogr:lagebez xsi:nil="true"/>
              <ogr:plz></ogr:plz>
              <ogr:ortsteil xsi:nil="true"/>
              <ogr:link xsi:nil="true"/>
              <ogr:bemerkung xsi:nil="true"/>
              <ogr:eigenname xsi:nil="true"/>
              <ogr:datum>2019/11/13</ogr:datum>
            </ogr:brunnen_neu>
          </gml:featureMember>
          <gml:featureMember>
            <ogr:brunnen_neu fid="brunnen.2">
              <ogr:geometryProperty>
              <gml:Point srsName="EPSG:25833">
              <gml:coordinates>394529.348641691,5812275.53221021</gml:coordinates>
              </gml:Point>
              </ogr:geometryProperty>
              <ogr:uid>02001</ogr:uid>
              <ogr:bezirk>Mitte</ogr:bezirk>
              <ogr:bezeichn>kleiner Brunnen</ogr:bezeichn>
              <ogr:jahr xsi:nil="true"/>
              <ogr:kuenstler xsi:nil="true"/>
              <ogr:einschraen xsi:nil="true"/>
              <ogr:lagebez xsi:nil="true"/>
              <ogr:plz xsi:nil="true"/>
              <ogr:ortsteil xsi:nil="true"/>
              <ogr:link xsi:nil="true"/>
              <ogr:bemerkung xsi:nil="true"/>
              <ogr:eigenname xsi:nil="true"/>
              <ogr:datum>2019/11/13</ogr:datum>
            </ogr:brunnen_neu>
          </gml:featureMember>
        </ogr:FeatureCollection>