Index: trunk/data/konvert/postnas_0.7/alkis-functions.sql
===================================================================
--- trunk/data/konvert/postnas_0.7/alkis-functions.sql	(revision 191)
+++ trunk/data/konvert/postnas_0.7/alkis-functions.sql	(revision 192)
@@ -108,32 +108,6 @@
 		AND ( substr(f_table_name,1,2) IN ('ax_','ap_','ks_')
 		 OR f_table_name IN ('alkis_beziehungen','delete') );
-END;
-$$ LANGUAGE plpgsql;
-
--- Table/View/Sequence lÃ¶schen, wenn vorhanden
-CREATE OR REPLACE FUNCTION alkis_dropobject(t TEXT) RETURNS void AS $$
-DECLARE
-	c RECORD;
-BEGIN
-	-- drop objects
-	FOR c IN SELECT relkind,relname
-		FROM pg_class
-		JOIN pg_namespace ON pg_class.relnamespace=pg_namespace.oid
-		WHERE pg_namespace.nspname='public' AND pg_class.relname=t
-		ORDER BY relkind
-	LOOP
-		IF c.relkind = 'v' THEN
-			RAISE NOTICE 'Dropping view %', c.relname;
-			EXECUTE 'DROP VIEW ' || c.relname || ' CASCADE';
-		ELSIF c.relkind = 'r' THEN
-			RAISE NOTICE 'Dropping table %', c.relname;
-			EXECUTE 'DROP TABLE ' || c.relname || ' CASCADE';
-		ELSIF c.relkind = 'S' THEN
-			RAISE NOTICE 'Dropping sequence %', c.relname;
-			EXECUTE 'DROP SEQUENCE ' || c.relname;
-		ELSIF c.relkind <> 'i' THEN
-			RAISE NOTICE 'Unexpected type %,%', c.relkind, c.relname;
-		END IF;
-	END LOOP;
+
+	RETURN r;
 END;
 $$ LANGUAGE plpgsql;
@@ -290,4 +264,7 @@
 $$ LANGUAGE plpgsql;
 
+-- Im Trigger 'delete_feature_trigger' muss eine dieser beiden Funktionen
+-- (delete_feature_hist oder delete_feature_kill) verlinkt werden, je nachdem ob nur
+-- aktuelle oder auch historische Objekte in der Datenbank gefÃŒhrt werden sollen.
 
 -- LÃ¶schsatz verarbeiten (MIT Historie)
@@ -320,32 +297,30 @@
 		END IF;
 
-		IF NEW.replacedBy IS NULL OR NEW.replacedBy = '' THEN
+		IF NEW.replacedBy IS NULL OR length(NEW.replacedBy)<16 THEN
 			IF NEW.safetoignore = 'true' THEN
-				RAISE NOTICE '%: Nachfolger nicht gesetzt - ignoriert', NEW.featureid;
+				RAISE NOTICE '%: Nachfolger ''%'' nicht richtig gesetzt - ignoriert', NEW.featureid, NEW.replacedBy;
 				NEW.ignored := true;
 				RETURN NEW;
 			ELSE
-				RAISE EXCEPTION '%: Nachfolger nicht gesetzt', NEW.featureid;
+				RAISE EXCEPTION '%: Nachfolger ''%'' nicht richtig gesetzt - Abbruch', NEW.featureid, NEW.replacedBy;
 			END IF;
 		END IF;
 
-		sql := 'SELECT beginnt FROM ' || NEW.typename || ' WHERE identifier=''urn:adv:oid:' || NEW.replacedBy || '''';
-		-- RAISE NOTICE 'SQL: %', sql;
-
-		-- FEHLER: identifier enthÃ€lt nur gml_id, aber nicht den Timestamp dahinter
-		--         Daher wird das zu ersetzende Objekt nicht gefunden
-
-		EXECUTE sql INTO endete;
-
-		IF endete IS NULL AND length(NEW.replacedBy)>16 THEN
-			RAISE NOTICE '%: Nachfolger % nicht gefunden - versuche ''%''', NEW.featureid, NEW.replacedBy, substr(NEW.replacedBy, 1, 16);
-			sql := 'SELECT beginnt FROM ' || NEW.typename
-			    || ' WHERE gml_id=''' || substr(NEW.replacedBy, 1, 16) || ''''
-			    || ' AND endet IS NULL'
-			    || ' AND identifier<>''urn:adv:oid:'|| NEW.featureid || ''''
-			    || ' ORDER BY beginnt DESC'
-			    || ' LIMIT 1';
-			EXECUTE sql INTO endete;
-			gml_id := gml_id || ''' AND beginnt<>''' || endete;
+		IF length(NEW.replacedBy)=16 THEN
+			EXECUTE 'SELECT beginnt FROM ' || NEW.typename ||
+			        ' WHERE gml_id=''' || NEW.replacedBy || ''' AND endet IS NULL' ||
+				' ORDER BY beginnt DESC LIMIT 1'
+                           INTO endete;
+		ELSE
+			-- replaceBy mit Timestamp
+			EXECUTE 'SELECT beginnt FROM ' || NEW.typename ||
+			        ' WHERE identifier=''urn:adv:oid:' || NEW.replacedBy || ''''
+			   INTO endete;
+			IF endete IS NULL THEN
+				EXECUTE 'SELECT beginnt FROM ' || NEW.typename ||
+					' WHERE gml_id=''' || substr(NEW.replacedBy,1,16) || ''' AND endet IS NULL' ||
+					' ORDER BY beginnt DESC LIMIT 1'
+				   INTO endete;
+			END IF;
 		END IF;
 
@@ -359,6 +334,4 @@
 			END IF;
 		END IF;
-
-		-- RAISE NOTICE '%: Nachfolgeobjekt beginnt um %.', NEW.featureid, endete;
 	ELSE
 		RAISE EXCEPTION '%: UngÃŒltiger Kontext % (''delete'' oder ''replace'' erwartet).', NEW.featureid, NEW.context;
@@ -367,6 +340,7 @@
 	sql	:= 'UPDATE ' || NEW.typename
 		|| ' SET endet=''' || endete || ''''
-		|| ' WHERE (identifier=''urn:adv:oid:' || NEW.featureid || ''' OR identifier=''urn:adv:oid:' || gml_id || ''')'
-		|| ' AND endet IS NULL';
+		|| ' WHERE gml_id=''' || gml_id || ''''
+		|| ' AND endet IS NULL'
+		|| ' AND beginnt<''' || endete || '''';
 	-- RAISE NOTICE 'SQL: %', sql;
 	EXECUTE sql;
@@ -379,5 +353,5 @@
 			RETURN NEW;
 		ELSE
-			RAISE EXCEPTION '%: Untergangsdatum von % Objekten statt nur einem auf % gesetzt - ignoriert', NEW.featureid, n, endete;
+			RAISE EXCEPTION '%: Untergangsdatum von % Objekten statt nur einem auf % gesetzt - Abbruch', NEW.featureid, n, endete;
 		END IF;
 	END IF;
@@ -425,5 +399,5 @@
 		-- Die 2 DatensÃ€tze unterscheiden sich nur in ogc_fid und beginnt
 
-		-- beginnt-Wert des aktuellen Objektes ermitteln 
+		-- beginnt-Wert des aktuellen Objektes ermitteln
 		-- RAISE NOTICE 'Suche beginnt von neuem gml_id % ', substr(NEW.replacedBy, 1, 16);
 		begsql := 'SELECT max(beginnt) FROM ' || NEW.typename || ' WHERE gml_id = ''' || substr(NEW.replacedBy, 1, 16) || ''' AND endet IS NULL';
@@ -431,5 +405,5 @@
 
 		-- Nur alte Objekte entfernen
-		query := 'DELETE FROM ' || NEW.typename 
+		query := 'DELETE FROM ' || NEW.typename
 			|| ' WHERE gml_id = ''' || gml_id || ''' AND beginnt < ''' || aktbeg || '''';
 		EXECUTE query;
@@ -439,13 +413,13 @@
 			-- Beziehungen des Objektes wurden redundant noch einmal eingetragen
 			-- ToDo:         HIER sofort die Redundanzen zum aktuellen Objekt beseitigen.
-			-- Workaround: Nach der Konvertierung werden im Post-Processing 
+			-- Workaround: Nach der Konvertierung werden im Post-Processing
 			--             ALLE Redundanzen mit einem SQL-Statemant beseitigt.
 		--	RAISE NOTICE 'Ersetze gleiche gml_id % in %', gml_id, NEW.typename;
 
 		-- ENTWURF ungetestet:
-		--query := 'DELETE FROM alkis_beziehungen AS bezalt 
+		--query := 'DELETE FROM alkis_beziehungen AS bezalt
 		--	WHERE (bezalt.beziehung_von = ' || gml_id || ' OR bezalt.beziehung_zu = ' || gml_id ||')
-		--	AND EXISTS (SELECT ogc_fid FROM alkis_beziehungen AS bezneu 
-		--		WHERE bezalt.beziehung_von = bezneu.beziehung_von 
+		--	AND EXISTS (SELECT ogc_fid FROM alkis_beziehungen AS bezneu
+		--		WHERE bezalt.beziehung_von = bezneu.beziehung_von
 		--		AND bezalt.beziehung_zu = bezneu.beziehung_zu
 		--		AND bezalt.beziehungsart = bezneu.beziehungsart
@@ -465,7 +439,11 @@
 $$ LANGUAGE plpgsql;
 
--- Im Trigger 'delete_feature_trigger' muss eine dieser beiden Funktionen
--- (delete_feature_hist oder delete_feature_kill) verlinkt werden, je nachdem ob nur
--- aktuelle oder auch historische Objekte in der Datenbank gefÃŒhrt werden sollen.
+-- BeziehungssÃ€tze aufrÃ€umen
+CREATE OR REPLACE FUNCTION alkis_beziehung_inserted() RETURNS TRIGGER AS $$
+BEGIN
+	DELETE FROM alkis_beziehungen WHERE ogc_fid<NEW.ogc_fid AND beziehung_von=NEW.beziehung_von AND beziehungsart=NEW.beziehungsart AND beziehung_zu=NEW.beziehung_zu;
+	RETURN NEW;
+END;
+$$ LANGUAGE plpgsql;
 
 -- Wenn die Datenbank MIT Historie angelegt wurde, kann nach dem Laden hiermit aufgerÃ€umt werden.
@@ -474,5 +452,5 @@
 	c RECORD;
 BEGIN
-	-- In allen Tabellen die Objekte LÃ¶schen, die ein Ende-Datum haben
+	-- In allen Tabellen die Objekte lÃ¶schen, die ein Ende-Datum haben
 	FOR c IN
 		SELECT table_name
Index: trunk/data/konvert/postnas_0.7/alkis-trigger-hist.sql
===================================================================
--- trunk/data/konvert/postnas_0.7/alkis-trigger-hist.sql	(revision 191)
+++ trunk/data/konvert/postnas_0.7/alkis-trigger-hist.sql	(revision 192)
@@ -3,2 +3,7 @@
 	FOR EACH ROW 
 	EXECUTE PROCEDURE delete_feature_hist();
+
+CREATE TRIGGER insert_beziehung_trigger
+        AFTER INSERT ON alkis_beziehungen
+        FOR EACH ROW
+        EXECUTE PROCEDURE alkis_beziehung_inserted();
Index: trunk/data/konvert/postnas_0.7/alkis_PostNAS_0.7_schema.sql
===================================================================
--- trunk/data/konvert/postnas_0.7/alkis_PostNAS_0.7_schema.sql	(revision 191)
+++ trunk/data/konvert/postnas_0.7/alkis_PostNAS_0.7_schema.sql	(revision 192)
@@ -106,4 +106,47 @@
 COMMENT ON COLUMN delete.replacedBy   IS 'gml_id des Objekts, das featureid ersetzt';
 COMMENT ON COLUMN delete.ignored      IS 'LÃ¶schsatz wurde ignoriert';
+
+-- B e z i e h u n g e n
+-- ----------------------------------------------
+-- Zentrale Tabelle fuer alle Relationen im Buchwerk.
+
+-- Statt Relationen und FOREIGN-KEY-CONSTRAINTS zwischen Tabellen direkt zu legen, gehen
+-- in der ALKIS-Datenstruktur alle Beziehungen zwischen zwei Tabellen ÃŒber diese Verbindungstabelle.
+
+-- Die FremdschlÃŒssel 'beziehung_von' und 'beziehung_zu' verweisen auf die ID des Objekte (gml_id).
+-- Das Feld 'gml_id' sollte daher in allen Tabellen indiziert werden.
+
+-- ZusÃ€tzlich enthÃ€lt 'beziehungsart' noch ein Verb fÃŒr die Art der Beziehung.
+
+CREATE TABLE alkis_beziehungen (
+	ogc_fid			serial NOT NULL,
+	beziehung_von		character(16),         --> gml_id
+	beziehungsart		varchar,               --  Liste siehe unten
+	beziehung_zu		character(16),         --> gml_id
+	CONSTRAINT alkis_beziehungen_pk PRIMARY KEY (ogc_fid)
+);
+
+CREATE INDEX alkis_beziehungen_von_idx ON alkis_beziehungen USING btree (beziehung_von);
+CREATE INDEX alkis_beziehungen_zu_idx  ON alkis_beziehungen USING btree (beziehung_zu);
+CREATE INDEX alkis_beziehungen_art_idx ON alkis_beziehungen USING btree (beziehungsart);
+
+-- Dummy-Eintrag in Metatabelle
+SELECT AddGeometryColumn('alkis_beziehungen','dummy',:alkis_epsg,'POINT',2);
+
+COMMENT ON TABLE  alkis_beziehungen               IS 'zentrale Multi-Verbindungstabelle';
+COMMENT ON COLUMN alkis_beziehungen.beziehung_von IS 'Join auf Feld gml_id verschiedener Tabellen';
+COMMENT ON COLUMN alkis_beziehungen.beziehung_zu  IS 'Join auf Feld gml_id verschiedener Tabellen';
+COMMENT ON COLUMN alkis_beziehungen.beziehungsart IS 'Typ der Beziehung zwischen der von- und zu-Tabelle';
+
+-- Beziehungsarten:
+--
+-- "an" "benennt" "bestehtAusRechtsverhaeltnissenZu" "beziehtSichAuchAuf" "dientZurDarstellungVon"
+-- "durch" "gehoertAnteiligZu" "gehoertZu" "hat" "hatAuch" "istBestandteilVon"
+-- "istGebucht" "istTeilVon" "weistAuf" "zeigtAuf" "zu"
+
+-- Hinweis:
+-- Diese Tabelle enthÃ€lt fÃŒr ein Kreisgebiet ca. 5 Mio. Zeilen und wird stÃ€ndig benutzt.
+-- Optimierung z.B. ÃŒber passende Indices ist wichtig.
+
 
 --
@@ -150,46 +193,4 @@
 
 
--- B e z i e h u n g e n
--- ----------------------------------------------
--- Zentrale Tabelle fuer alle Relationen im Buchwerk.
-
--- Statt Relationen und FOREIGN-KEY-CONSTRAINTS zwischen Tabellen direkt zu legen, gehen
--- in der ALKIS-Datenstruktur alle Beziehungen zwischen zwei Tabellen ÃŒber diese Verbindungstabelle.
-
--- Die Konnectoren 'beziehung_von' und 'beziehung_zu' verweisen auf die ID des Objekte (gml_id).
--- Das Feld 'gml_id' sollte daher in allen Tabellen indiziert werden.
-
--- ZusÃ€tzlich enthÃ€lt 'beziehungsart' noch ein Verb fÃŒr die Art der Beziehung.
-
-CREATE TABLE alkis_beziehungen (
-	ogc_fid			serial NOT NULL,
-	beziehung_von		character(16),         --> gml_id
-	beziehungsart		varchar,               --  Liste siehe unten
-	beziehung_zu		character(16),         --> gml_id
-	CONSTRAINT alkis_beziehungen_pk PRIMARY KEY (ogc_fid)
-);
-
-CREATE INDEX alkis_beziehungen_von_idx ON alkis_beziehungen USING btree (beziehung_von);
-CREATE INDEX alkis_beziehungen_zu_idx  ON alkis_beziehungen USING btree (beziehung_zu);
-CREATE INDEX alkis_beziehungen_art_idx ON alkis_beziehungen USING btree (beziehungsart);
-
--- Dummy-Eintrag in Metatabelle
-SELECT AddGeometryColumn('alkis_beziehungen','dummy',:alkis_epsg,'POINT',2);
-
-COMMENT ON TABLE  alkis_beziehungen               IS 'zentrale Multi-Verbindungstabelle';
-COMMENT ON COLUMN alkis_beziehungen.beziehung_von IS 'Join auf Feld gml_id verschiedener Tabellen';
-COMMENT ON COLUMN alkis_beziehungen.beziehung_zu  IS 'Join auf Feld gml_id verschiedener Tabellen';
-COMMENT ON COLUMN alkis_beziehungen.beziehungsart IS 'Typ der Beziehung zwischen der von- und zu-Tabelle';
-
--- Beziehungsarten:
---
--- "an" "benennt" "bestehtAusRechtsverhaeltnissenZu" "beziehtSichAuchAuf" "dientZurDarstellungVon"
--- "durch" "gehoertAnteiligZu" "gehoertZu" "hat" "hatAuch" "istBestandteilVon"
--- "istGebucht" "istTeilVon" "weistAuf" "zeigtAuf" "zu"
-
--- Hinweis:
--- Diese Tabelle enthÃ€lt fÃŒr ein Kreisgebiet ca. 5 Mio. Zeilen und wird stÃ€ndig benutzt.
--- Optimierung z.B. ÃŒber passende Indices ist wichtig.
-
 
 -- A n d e r e   F e s t l e g u n g   n a c h   W a s s e r r e c h t
@@ -265,4 +266,23 @@
 COMMENT ON COLUMN ax_besonderertopographischerpunkt.gml_id IS 'Identifikator, global eindeutig';
 
+--
+--
+CREATE TABLE ax_soll (
+	ogc_fid			serial NOT NULL,
+	gml_id			character(16),
+	identifier		character(44),
+	beginnt			character(20),
+	endet 			character(20),
+	advstandardmodell	varchar,
+	anlass			varchar,
+	name			varchar,
+	CONSTRAINT ax_soll_pk PRIMARY KEY (ogc_fid)
+);
+
+SELECT AddGeometryColumn('ax_soll','wkb_geometry',:alkis_epsg,'POLYGON',2);
+
+CREATE INDEX ax_soll_geom_idx ON ax_soll USING gist (wkb_geometry);
+CREATE UNIQUE INDEX ax_soll_gml ON ax_soll USING btree (gml_id,beginnt);
+
 
 -- B e w e r t u n g
@@ -287,4 +307,22 @@
 COMMENT ON TABLE  ax_bewertung        IS 'B e w e r t u n g';
 COMMENT ON COLUMN ax_bewertung.gml_id IS 'Identifikator, global eindeutig';
+
+-- Tagesabschnitt
+CREATE TABLE ax_tagesabschnitt (
+	ogc_fid			serial NOT NULL,
+	gml_id			character(16),
+	identifier		character(44),
+	beginnt			character(20),
+	endet 			character(20),
+	advstandardmodell	varchar,
+	anlass			varchar,
+	tagesabschnittsnummer	varchar,
+	CONSTRAINT ax_tagesabschnitt_pk PRIMARY KEY (ogc_fid)
+);
+
+SELECT AddGeometryColumn('ax_tagesabschnitt','wkb_geometry',:alkis_epsg,'POLYGON',2);
+
+CREATE INDEX ax_tagesabschnitt_geom_idx   ON ax_tagesabschnitt USING gist  (wkb_geometry);
+CREATE UNIQUE INDEX ax_tagesabschnitt_gml ON ax_tagesabschnitt USING btree (gml_id,beginnt);
 
 
@@ -315,4 +353,25 @@
 COMMENT ON TABLE  ax_denkmalschutzrecht        IS 'D e n k m a l s c h u t z r e c h t';
 COMMENT ON COLUMN ax_denkmalschutzrecht.gml_id IS 'Identifikator, global eindeutig';
+
+CREATE TABLE ax_forstrecht (
+	ogc_fid			serial NOT NULL,
+	gml_id			character(16),
+	identifier		character(44),
+	beginnt			character(20),
+	endet			character(20),
+	advstandardmodell	varchar,
+	anlass			varchar,
+	artderfestlegung	integer,
+	besonderefunktion	integer,
+	land			integer,
+	stelle			varchar,
+	CONSTRAINT ax_forstrecht_pk PRIMARY KEY (ogc_fid)
+);
+
+SELECT AddGeometryColumn('ax_forstrecht','wkb_geometry',:alkis_epsg,'GEOMETRY',2); -- POLYGON/MULTIPOLYGON
+
+CREATE INDEX ax_forstrecht_geom_idx   ON ax_forstrecht USING gist  (wkb_geometry);
+CREATE UNIQUE INDEX ax_forstrecht_gml ON ax_forstrecht USING btree (gml_id,beginnt);
+CREATE INDEX ax_forstrecht_afs ON ax_forstrecht(land,stelle);
 
 
@@ -935,5 +994,5 @@
 	regierungsbezirk		integer,
 	kreis				integer,
-	stelle				varchar,
+	stelle				varchar[],
 
 -- neu aus SVN-Version 28.02.2012 hinzugefuegt
@@ -1189,5 +1248,5 @@
 CREATE TABLE ax_sicherungspunkt (
 	ogc_fid			serial NOT NULL,
-	gml_id			varchar,
+	gml_id			character(16),
 	identifier              character(44),
 	beginnt			character(20),
@@ -1608,4 +1667,6 @@
 	ortsteil			varchar,
 	weitereAdressen			varchar,
+	telefon				varchar,
+	fax				varchar,
 	CONSTRAINT ax_anschrift_pk PRIMARY KEY (ogc_fid)
 );
@@ -2856,5 +2917,5 @@
 );
 
-SELECT AddGeometryColumn('ax_transportanlage','wkb_geometry',:alkis_epsg,'LINESTRING',2);
+SELECT AddGeometryColumn('ax_transportanlage','wkb_geometry',:alkis_epsg,'GEOMETRY',2); -- POINT/LINESTRING
 
 CREATE INDEX ax_transportanlage_geom_idx ON ax_transportanlage USING gist (wkb_geometry);
@@ -2998,4 +3059,5 @@
 	beginnt			character(20),
 	endet			character(20),
+	advstandardmodell	varchar,
 	sonstigesmodell		varchar,
 	anlass			varchar,
@@ -3005,5 +3067,5 @@
 );
 
-SELECT AddGeometryColumn('ax_einrichtunginoeffentlichenbereichen','wkb_geometry',:alkis_epsg,'POINT',2);
+SELECT AddGeometryColumn('ax_einrichtunginoeffentlichenbereichen','wkb_geometry',:alkis_epsg,'GEOMETRY',2);
 
 CREATE INDEX ax_einrichtunginoeffentlichenbereichen_geom_idx ON ax_einrichtunginoeffentlichenbereichen USING gist (wkb_geometry);
@@ -3012,4 +3074,25 @@
 COMMENT ON TABLE  ax_einrichtunginoeffentlichenbereichen        IS 'E i n r i c h t u n g   i n   O e f f e n t l i c h e n   B e r e i c h e n';
 COMMENT ON COLUMN ax_einrichtunginoeffentlichenbereichen.gml_id IS 'Identifikator, global eindeutig';
+
+
+-- Einrichtung fÃŒr den Schiffsverkehr
+CREATE TABLE ax_einrichtungenfuerdenschiffsverkehr (
+	ogc_fid 		serial NOT NULL,
+	gml_id			character(16),
+	identifier		character(44),
+	beginnt			character(20),
+	endet			character(20),
+	advstandardmodell	varchar,
+	anlass			varchar,
+	art			integer,
+	kilometerangabe		varchar,
+	name			varchar,
+	CONSTRAINT ax_einrichtungfuerdenschiffsverkehr_pk PRIMARY KEY (ogc_fid)
+);
+
+SELECT AddGeometryColumn('ax_einrichtungenfuerdenschiffsverkehr','wkb_geometry',:alkis_epsg,'POINT',2);
+
+CREATE INDEX ax_einrichtungenfuerdenschiffsverkehr_geom_idx ON ax_einrichtungenfuerdenschiffsverkehr USING gist (wkb_geometry);
+CREATE UNIQUE INDEX ax_einrichtungenfuerdenschiffsverkehr_gml ON ax_einrichtungenfuerdenschiffsverkehr USING btree (gml_id,beginnt);
 
 
@@ -3075,4 +3158,5 @@
 	ogc_fid			serial NOT NULL,
 	gml_id			character(16),
+	identifier		character(44),
 	beginnt			character(20),
 	endet 			character(20),
@@ -3125,4 +3209,5 @@
 	ogc_fid			serial NOT NULL,
 	gml_id			character(16),
+	identifier		character(44),
 	beginnt			character(20),
 	endet 			character(20),
@@ -3136,5 +3221,5 @@
 );
 
-SELECT AddGeometryColumn('ax_bahnverkehrsanlage','wkb_geometry',:alkis_epsg,'POINT',2);
+SELECT AddGeometryColumn('ax_bahnverkehrsanlage','wkb_geometry',:alkis_epsg,'GEOMETRY',2); -- POINT/POLYGON
 
 CREATE INDEX ax_bahnverkehrsanlage_geom_idx ON ax_bahnverkehrsanlage USING gist (wkb_geometry);
@@ -3145,6 +3230,28 @@
 
 
---AX_SeilbahnSchwebebahn
--- ** Tabelle bisher noch nicht generiert
+-- S e i l b a h n, S c h w e b e b a h n
+-- --------------------------------------
+CREATE TABLE ax_seilbahnschwebebahn (
+	ogc_fid			serial NOT NULL,
+	gml_id			character(16),
+	identifier		character(44),
+	beginnt			character(20),
+	endet 			character(20),
+	advstandardmodell	varchar,
+	sonstigesmodell		varchar[],
+	anlass			varchar,
+	bahnkategorie		integer,
+	name			varchar,
+	CONSTRAINT ax_seilbahnschwebebahn_pk PRIMARY KEY (ogc_fid)
+);
+
+SELECT AddGeometryColumn('ax_seilbahnschwebebahn','wkb_geometry',:alkis_epsg,'GEOMETRY',2); -- LINESTRING/MULTILINESTRING
+
+CREATE INDEX ax_seilbahnschwebebahn_geom_idx ON ax_seilbahnschwebebahn USING gist (wkb_geometry);
+CREATE UNIQUE INDEX ax_seilbahnschwebebahn_gml ON ax_seilbahnschwebebahn USING btree (gml_id,beginnt);
+
+COMMENT ON TABLE  ax_seilbahnschwebebahn        IS 'S e i l b a h n, S c h w e b e b a h n';
+COMMENT ON COLUMN ax_seilbahnschwebebahn.gml_id IS 'Identifikator, global eindeutig';
+
 
 
@@ -3277,5 +3384,5 @@
 );
 
-SELECT AddGeometryColumn('ax_gewaessermerkmal','wkb_geometry',:alkis_epsg,'POINT',2);
+SELECT AddGeometryColumn('ax_gewaessermerkmal','wkb_geometry',:alkis_epsg,'GEOMETRY',2); -- POINT/LINESTRING/POLYGON
 
 CREATE INDEX ax_gewaessermerkmal_geom_idx ON ax_gewaessermerkmal USING gist (wkb_geometry);
@@ -3319,8 +3426,41 @@
 
 --AX_Wasserspiegelhoehe
--- ** Tabelle bisher noch nicht generiert
-
---AX_SchifffahrtslinieFaehrverkehr
--- ** Tabelle bisher noch nicht generiert
+--
+CREATE TABLE ax_wasserspiegelhoehe (
+	ogc_fid			serial NOT NULL,
+	gml_id			character(16),
+	identifier		character(44),
+	beginnt			character(20),
+	endet 			character(20),
+	advstandardmodell	varchar,
+	anlass			varchar,
+	hoehedeswasserspiegels	double precision,
+	CONSTRAINT ax_wasserspiegelhoehe_pk PRIMARY KEY (ogc_fid)
+);
+
+SELECT AddGeometryColumn('ax_wasserspiegelhoehe','wkb_geometry',:alkis_epsg,'POINT',2);
+
+CREATE INDEX ax_wasserspiegelhoehe_geom_idx ON ax_wasserspiegelhoehe USING gist (wkb_geometry);
+CREATE UNIQUE INDEX ax_wasserspiegelhoehe_gml ON ax_wasserspiegelhoehe USING btree (gml_id,beginnt);
+
+--
+--
+CREATE TABLE ax_schifffahrtsliniefaehrverkehr (
+	ogc_fid			serial NOT NULL,
+	gml_id			character(16),
+	identifier		character(44),
+	beginnt			character(20),
+	endet 			character(20),
+	advstandardmodell	varchar,
+	anlass			varchar,
+	art			integer,
+	CONSTRAINT ax_schifffahrtsliniefaehrverkehr_pk PRIMARY KEY (ogc_fid)
+);
+
+SELECT AddGeometryColumn('ax_schifffahrtsliniefaehrverkehr','wkb_geometry',:alkis_epsg,'LINESTRING',2);
+
+CREATE INDEX ax_schifffahrtsliniefaehrverkehr_geom_idx ON ax_schifffahrtsliniefaehrverkehr USING gist (wkb_geometry);
+CREATE UNIQUE INDEX ax_schifffahrtsliniefaehrverkehr_gml ON ax_schifffahrtsliniefaehrverkehr USING btree (gml_id,beginnt);
+
 
 --*** ############################################################
@@ -3342,5 +3482,7 @@
 	advstandardmodell	varchar,
 	sonstigesmodell		varchar[],
-	anlass			varchar
+	anlass			varchar,
+	objekthoehe		double precision,
+	CONSTRAINT ax_boeschungkliff_pk PRIMARY KEY (ogc_fid)
 );
 
@@ -3389,4 +3531,5 @@
 	art			integer,
 	name			varchar,
+	funktion		integer,
 	CONSTRAINT ax_dammwalldeich_pk PRIMARY KEY (ogc_fid)
 );
@@ -3401,6 +3544,22 @@
 
 
---AX_Hoehleneingang
--- ** Tabelle bisher noch nicht generiert
+--
+--
+CREATE TABLE ax_hoehleneingang (
+	ogc_fid			serial NOT NULL,
+	gml_id			character(16),
+	identifier		character(44),
+	beginnt			character(20),
+	endet 			character(20),
+	advstandardmodell	varchar,
+	anlass			varchar,
+	name			varchar,
+	CONSTRAINT ax_hoehleneingang_pk PRIMARY KEY (ogc_fid)
+);
+
+SELECT AddGeometryColumn('ax_hoehleneingang','wkb_geometry',:alkis_epsg,'POINT',2);
+
+CREATE INDEX ax_hoehleneingang_geom_idx ON ax_hoehleneingang USING gist (wkb_geometry);
+CREATE UNIQUE INDEX ax_fhoehleneingang_gml ON ax_hoehleneingang USING btree (gml_id,beginnt);
 
 
@@ -3429,10 +3588,41 @@
 
 
---AX_Duene
--- ** Tabelle bisher noch nicht generiert
-
-
---AX_Hoehenlinie
--- ** Tabelle bisher noch nicht generiert
+-- DÃŒne
+CREATE TABLE ax_duene (
+	ogc_fid			serial NOT NULL,
+	gml_id			character(16),
+	identifier		character(44),
+	beginnt			character(20),
+	endet 			character(20),
+	advstandardmodell	varchar,
+	anlass			varchar,
+	name			varchar,
+	CONSTRAINT ax_duene_pk PRIMARY KEY (ogc_fid)
+);
+
+SELECT AddGeometryColumn('ax_duene','wkb_geometry',:alkis_epsg,'GEOMETRY',2);
+
+CREATE INDEX ax_duene_geom_idx ON ax_duene USING gist (wkb_geometry);
+CREATE UNIQUE INDEX ax_duene_gml ON ax_duene USING btree (gml_id,beginnt);
+
+--
+--
+CREATE TABLE ax_hoehenlinie (
+	ogc_fid			serial NOT NULL,
+	gml_id			character(16),
+	identifier		character(44),
+	beginnt			character(20),
+	endet 			character(20),
+	advstandardmodell	varchar,
+	anlass			varchar,
+	hoehevonhoehenlinie	double precision,
+	CONSTRAINT ax_hoehenlinie_pk PRIMARY KEY (ogc_fid)
+);
+
+SELECT AddGeometryColumn('ax_hoehenlinie','wkb_geometry',:alkis_epsg,'LINESTRING',2);
+
+CREATE INDEX ax_hoehenlinie_geom_idx ON ax_hoehenlinie USING gist (wkb_geometry);
+CREATE UNIQUE INDEX ax_hoehenlinie_gml ON ax_hoehenlinie USING btree (gml_id,beginnt);
+
 
 
@@ -3618,4 +3808,5 @@
 	art			varchar,  --(15)
 	name			varchar,
+	funktion		integer,
 --	"qualitaetsangaben|ax_dqmitdatenerhebung|herkunft|li_lineage|pro" varchar,
 --	datetime		varchar,
@@ -4006,4 +4197,5 @@
 	ogc_fid			serial NOT NULL,
 	gml_id			character(16),
+	identifier		character(44),
 	beginnt			character(20),
 	endet 			character(20),
@@ -4083,12 +4275,11 @@
 
 CREATE TABLE ax_vertretung (
-	ogc_fid serial NOT NULL,
-	gml_id varchar(16),
-	identifier varchar(28),
-	beginnt varchar(20),
-	endet character(20),
-	advstandardmodell varchar(4),
-	anlass varchar,
-	haengtan varchar,
+	ogc_fid			serial NOT NULL,
+	gml_id			character(16),
+	identifier		character(44),
+	beginnt			character(20),
+	endet			character(20),
+	advstandardmodell	varchar(4),
+	anlass			varchar,
 	CONSTRAINT ax_vertretung_pk PRIMARY KEY (ogc_fid)
 );
@@ -4097,18 +4288,18 @@
 
 CREATE TABLE ax_verwaltungsgemeinschaft (
-	ogc_fid serial NOT NULL,
-	gml_id varchar(16),
-	identifier varchar(28),
-	beginnt varchar(20),
-	endet character(20),
-	advstandardmodell varchar(4),
-	anlass varchar,
-	schluesselgesamt integer,
-	bezeichnung varchar,
-	bezeichnungart integer,
-	land integer,
-	regierungsbezirk integer,
-	kreis integer,
-	verwaltungsgemeinschaft integer,
+	ogc_fid			serial NOT NULL,
+	gml_id			character(16),
+	identifier		character(44),
+	beginnt			character(20),
+	endet			character(20),
+	advstandardmodell	varchar(4),
+	anlass			varchar,
+	schluesselgesamt	integer,
+	bezeichnung		varchar,
+	bezeichnungart		integer,
+	land			integer,
+	regierungsbezirk	integer,
+	kreis			integer,
+	verwaltungsgemeinschaft	integer,
 	CONSTRAINT ax_verwaltungsgemeinschaft_pk PRIMARY KEY (ogc_fid)
 );
@@ -4117,12 +4308,11 @@
 
 CREATE TABLE ax_verwaltung (
-	ogc_fid serial NOT NULL,
-	gml_id varchar(16),
-	identifier varchar(28),
-	beginnt varchar(20),
-	endet character(20),
-	advstandardmodell varchar(4),
-	anlass varchar,
-	haengtan varchar,
+	ogc_fid			serial NOT NULL,
+	gml_id			character(16),
+	identifier		character(44),
+	beginnt			character(20),
+	endet			character(20),
+	advstandardmodell	varchar(4),
+	anlass			varchar,
 	CONSTRAINT ax_verwaltung_pk PRIMARY KEY (ogc_fid)
 );
