Codelist-Modul
Das Codelist-Modul der VCDB v5
ermöglicht die Speicherung von Codelisten – also von Werte-Tabellen mit zugehörigen
Beschreibungen oder Definitionen für die Werte. Viele CityGML-Attribute sind im CityGML 3.0 Conceptual Model (CM)
so definiert, dass sie Werte aus einer Codeliste speichern. Codelisten können dabei von einer zuständigen Stelle innerhalb
einer Organisation oder Community als verpflichtend vorgeschrieben, empfohlen, oder vorgeschlagen werden, oder
lediglich als Best-Practice innerhalb einer Anwendungsdomäne eingesetzt werden.

CODELIST
Tabelle
Die CODELIST
Tabelle dient zur Registrierung von Codelisten. Jede Codeliste wird durch eine URL eindeutig identifiziert, die in
der url
Spalte gespeichert wird.
Wenn die url
auf eine externe Datei verweist, sollte in der Spalte mime_type
der MIME-Typ der referenzierten
Codelist-Datei angegeben werden, damit sie korrekt entsprechend ihres Formats verarbeitet werden kann. CityGML schreibt kein
bestimmtes Format für Codelisten vor, empfiehlt jedoch die Verwendung von GML-, JSON- und CSV-basierten Kodierungen (siehe
CityGML-Spezifikation).
In der Spalte codelist_type
wird der CityGML-Datentyp angegeben, mit dem die Codeliste verknüpft ist. Es handelt sich dabei um den vollqualifizierten
Klassennamen des Datentyps gemäß dem CityGML 3.0 Conceptual Model (CM), wie beispielsweise core:RelationTypeValue
oder bldg:BuildingClassValue
.
Es existiert kein Fremdschlüssel zwischen der CODELIST
Tabelle und der PROPERTY
Tabelle,
um eine Codeliste direkt mit einem Attribut zu verknüpfen, welches Werte aus der Codeliste verwendet. Stattdessen sind Attribute, die Codelisten referenzieren,
typischerweise vom Datentyp core:Code
, der ein codeSpace
Attribut enthält, das in der Spalte val_codespace
gespeichert wird. Dieser codeSpace
verweist typischerweise auf die URL der Codeliste, aus der der Attributwert stammt. Die zugehörige Codeliste in der
CODELIST
Tabelle kann somit über den Vergleich von codeSpace
mit dem Wert der Spalte url
ermittelt werden.
Mehrere Codelisten können für denselben codelist_type registriert werden, z. B. wenn die Codelisten von unterschiedlichen
Organisationen oder Communities stammen. In diesem Fall muss die Kombination von codelist_type und url innerhalb
der Tabelle CODELIST eindeutig sein.
|
CODELIST_ENTRY
Tabelle
Die CODELIST_ENTRY
Tabelle speichert die einzelnen Werte der registrierten Codelisten. Jeder Eintrag ist
über den Fremdschlüssel codelist_id
mit einer Codeliste in der CODELIST
Tabelle verknüpft.
Der konkrete Wert eines Codelisten-Eintrags wird in der Spalte code
gespeichert, seine Definition oder Beschreibung
in der Spalte definition
. Dies ermöglicht ein einfaches Nachschlagen der Definition für einen Code, der als
Attributwert in der PROPERTY
-Tabelle gespeichert ist, und umgekehrt.
Neben der Verwendung der Codelisten-Tabellen zum Nachschlagen oder Validieren von Attributwerten beim Datenimport und -export,
können sie auch zur Umsetzung eines Webdienstes genutzt werden, der die gespeicherten Codelisten entweder als Dateien zum Download bereitstellt
oder individuelle Codelisten-Werte nachschlagen und validieren kann. Entsprechende Werkzeuge zum Erstellen solcher Dienste sind in der
VCDB v5 jedoch nicht enthalten.
|