Home| Datenschutzerklärung Impressum
NAS-Viewer M-V - Datenmodell

Der NAS-Viewer soll NAS-Daten des AAA-Modells (AFIS / ALKIS / ATKIS) laden, speichern, darstellen und teilweise auch bearbeiten können. Dies soll möglichst performant erfolgen, aber auch genügend Flexibilität bieten, um auf Fortschreibung der Versionen des AAA-Modells reagieren zu können. Zum Zeitpunkt des Entstehens des NAS-Viewers lag das AAA-Modell bereits in der Version 6.0.1 vor, welche heute (2016) einheitlich in allen Bundesländern zu finden ist.

Das AAA-Modell wird in der GeoInfoDok genau beschrieben. (siehe AdV-Online).

Das AAA-Modell ist sehr umfangreich, weil es zahlreiche internationale Standards heranzieht. Im Einzelnen werden aber von jedem Standard nur wenige Teile ausgenutzt. Es erscheint also nicht notwendig, sämtliche Standards vollständig zu implementieren, um mit AAA-Daten umgehen zu können. Weiterhin unterscheidet sich das "externe" Modell, also die "Normbasierte Austauschschnittstelle" (NAS) nochmal stark vom vollständigen AAA-Modell. Hier gelten zahlreiche Vereinfachungen, insbesondere bezüglich der Mehrfach-Vererbung.

Als Grundlage der Implementierung des Datenmodells für den NAS-Viewer in Java gelten folgende strategische Überlegungen:

In der Implementierung werden mehrere Java-Klassen unterschieden, in denen Attribut-Listen gespeichert werden können. Diese Klassen implementieren das Interface NasAttContainer.

Die verschiedenen Arten von Attributen werden durch mehrere von NasAttBase abgeleitete Java-Klassen implementiert:

Die definierten Attributarten, Objektarten, komplexen Datentypen und Enumerationen werden in der Java-Klasse NasModelDef gekapselt und mit Hilfe einer XML-Datei initialisiert. Kern der Klasse ist eine Map mit Elementen vom Typ NasTypeDef. Das ist die Basisklasse für folgende abgeleitete Klassen:

Die ersten beiden Datentypen, NasObjDef und NasEnumDef sind in der o. g. Map in NasModelDef registriert und können über ihren Namen gefunden werden. Die anderen Datentypen werden für die Definition der einzelnen Attribute innerhalb der Objektarten, komplexen Datentypen und Unions benötigt.

Die Definition von Attributen erfolgt mittels Instanzen der Java-Klasse NasAttDef. Diese wiederum haben eine Referenz typeDef auf NasTypeDef, wodurch der Datentyp des Attributes festgelegt wird. Darüber hinaus werden der Attributname, die Kardinalität und einige weitere Eigenschaften festgelegt.

...