Skip to content

ISYBAU XML einlesen

Thomas Schüttenberg edited this page Dec 10, 2017 · 27 revisions

mittels GMLAS

Es braucht die Open Option "XSD", um auf das lokale Schema zu verweisen s.o., um mit dem OGR Treiber GMLAS eine ISYBAU XML-Datei zu öffnen.

ogrinfo GMLAS:1302_ISYBAU_XML_Beispieldaten\ISYBAU_XML-2013-Stammdaten_Sanierung_Abnahme.xml 
-oo XSD=1302_ISYBAU_XML_Schema\1302-metadaten.xsd

OSGeo4W Shell: Pfade relativ, entsprechend einem heruntergeladenen isybau2qgep Repo...

Resultat

  • Layernamen (z.B. identifika_datenkolle_zustandsda_inspiziertabwassertecanlage) werden durch GMLAS jeweils aus den XML-Elementen (Tabellen), zwischen denen nur 1:1-Relationen bestehen, aneinander gereiht.
    • Der Treiber versucht dabei immer eindeutige Layernamen aus maximal 64 Zeichen zu bilden (mittels Abkürzungs-Logik und laufenden Nummern, falls doch Duplikate auftreten). - (vgl. #38)
  • Mit ein und dem selben Eingangsschema führt das natürlich immer zum selben Ergebnis. Das bedeutet, die Layerbezeichnungen von ISYBAU-Importen sind vorhersehbar, was für die standardisierte Weiterverarbeitung von Vorteil ist!

PostGIS Datenbankimport

Zunächst Schema anlegen, sonst erfolgt der Import in public.

ogrinfo PG:"host=localhost port=5432 dbname=testdb password=xyz user=twb" -sql "CREATE SCHEMA isybau"

leere Tabellen des ISYBAU Schemas anlegen (optional)

ogr2ogr -f PostgreSQL PG:"host=localhost port=5432 dbname=testdb password=xyz user=twb schemas=isybau" 
GMLAS:1302_ISYBAU_XML_Schema\1302-metadaten.xsd -oo XSD=1302_ISYBAU_XML_Schema\1302-metadaten.xsd
  • Dadurch werden alle 62 Tabellen des ISYBAU XML 2013 Schemas in der PostgreSQL Datenbank angelegt. Dies ist jedoch keine zwingende Vorraussetzung für einen Datenimport.

Import einer ISYBAU XML-Datei

ogr2ogr -f PostgreSQL PG:"host=localhost port=5432 dbname=testdb password=xyz user=twb schemas=isybau" 
GMLAS:1302_ISYBAU_XML_Beispieldaten\ISYBAU_XML-2013-Stammdaten_Sanierung_Abnahme.xml 
-oo XSD=1302_ISYBAU_XML_Schema\1302-metadaten.xsd 
-oo REMOVE_UNUSED_LAYERS=YES -oo REMOVE_UNUSED_FIELDS=YES -forceNullable
  • Dadurch werden nur die Tabellen und Felder des ISYBAU XML 2013 Schemas in der PostgreSQL Datenbank angelegt, die im XML-Dokunent vorkommen.

  • zusätzliche Optionen:

    • -forceNullable Die im Quellschema bestehenden NOT NULL Constraints nicht in die Zieltabellen übertragen.
    • -overwrite
    • -oo REMOVE_UNUSED_LAYERS=NO
    • -oo REMOVE_UNUSED_FIELDS=NO
    • -oo EXPOSE_METADATA_LAYERS=YES

(weiterer) Import im angegebenen Schema (-append)

ogr2ogr -append -update -f PostgreSQL PG:"host=localhost port=5432 dbname=kanal password=xyz user=twb schemas=isybau" 
GMLAS:Q:\gdm\isybau2qgep\ISYBAU_XML-2013-Stammdaten_Sanierung_Abnahme.xml -oo XSD=Q:\isybau_schema\1302-metadaten.xsd 
-oo REMOVE_UNUSED_LAYERS=NO -oo REMOVE_UNUSED_FIELDS=NO -oo EXPOSE_METADATA_LAYERS=YES -nlt CONVERT_TO_LINEAR -forceNullable
Clone this wiki locally