Bezug und Ablage der Codeliste
Das XRepository stellt für alle Codelistenversionen, die konform zu den Regelungen des Codelisten-Handbuchs sind, einen Downloadlink für die Codeliste im MagicDraw-Format mdxml
bereit. Codelisten in diesem Format können direkt im model
-Verzeichnis eines XÖV-Standards abgelegt und wie im Folgenden beschrieben, entsprechend der jeweiligen Anforderungen im XÖV-Fachmodell genutzt werden.
Im folgenden Beispiel wird die MagicDraw-Datei der Version 4 der Codeliste “Country Code” bezogen:
![beispiel md datei xrepo](https://docs.xoev.de/api/v1/branches/4232a17b/anleitung_nutzung_codelisten/media/beispiel_md_datei_xrepo.png)
Import der Codeliste in das XÖV-Fachmodell
Nach dem Öffnen des XÖV-Fachmodells in MagicDraw wird die Codelisten-Datei über das Menü Datei
→ Use Project
→ Verwende lokales Modul
in das Modell eingebunden:
![import codelisten](https://docs.xoev.de/api/v1/branches/4232a17b/anleitung_nutzung_codelisten/media/import_codelisten.png)
Im weiteren Verlauf sind verschiedene Fallkonstellationen zu unterscheiden:
Fall A: Die Codeliste liegt bisher noch nicht im XÖV-Fachmodell vor
In diesem Fall wird das gesamte Codelistenpaket (im Beispiel urn:xoev-de:kosit:codeliste:country-codes
) in das Paket Codelisten::externe Codelisten::automatisch gepflegte Codelisten
kopiert.
Daraufhin kann die Codeliste bzw. ihre Version gemäß der im aktuellen XÖV-Handbuch (ab Version 2.3) beschriebenen Methodik genutzt werden.
Fall B: Die Codeliste liegt bereits im XÖV-Fachmodell vor und wird genutzt (Code-Typ 3)
In diesem Fall wird vor der Übernahme der importierten Inhalte in die eigenen Modellstrukturen auf die neue UML-Klasse der Codeliste umgestellt. Im folgenden Beispiel nutzt der Code-Datentyp Code.Country-Codes
die bisher im Modell vorliegende UML-Klasse der Codeliste “Country Codes”. Die neu importierte UML-Klasse der Codeliste wird noch nicht genutzt:
![fall b neue codeliste ungenutzt](https://docs.xoev.de/api/v1/branches/4232a17b/anleitung_nutzung_codelisten/media/fall_b_neue_codeliste_ungenutzt.png)
Nun wird die Nutzungsbeziehung auf die neue Klasse umgesetzt:
![fall b nutzungsbeziehung](https://docs.xoev.de/api/v1/branches/4232a17b/anleitung_nutzung_codelisten/media/fall_b_nutzungsbeziehung.png)
Daraufhin wird das bisherige Paket der Codeliste (im Beispiel Codelisten::externe Codelisten::automatisch gepflegte Codelisten::urn:xoev-de:kosit:codeliste:country-codes
) wie folgt durch das neue Paket ersetzt: Rechtsklick auf das bisherige Paket der Codeliste → Refaktorierung (Umgestaltung)
→ Ersetzen durch...
→ Vorgang fortsetzen → importiertes Paket der Codeliste mit einem Doppelklick auswählen
Das neue Paket wird an den bisherigen Ort der Codeliste (Codelisten::externe Codelisten::automatisch gepflegte Codelisten
) verschoben. Hierfür muss zunächst der Schreibschutz des importierten Moduls aufgehoben werden: Optionen
→ Module
→ Auswahl des importierten Codelisten-Moduls → Lese- und Schreibzugriff
Fall C: Eine Codelistenversion soll durch eine andere Version ersetzt werden (Code-Typ 1 oder 2)
In diesem Fall wird vor der Übernahme der importierten Inhalte in die eigenen Modellstrukturen auf die neue Codelistenversion umgestellt. Im folgenden Beispiel nutzt der Code-Datentyp Code.Country-Codes
die bisher im Modell vorliegende Version 2 der Codeliste “Country Codes”. Die neu importierte Version 4 der Codeliste wird noch nicht genutzt:
![fall c neue codeliste ungenutzt](https://docs.xoev.de/api/v1/branches/4232a17b/anleitung_nutzung_codelisten/media/fall_c_neue_codeliste_ungenutzt.png)
Nun wird die Nutzungsbeziehung auf die neue Version umgesetzt:
![fall c nutzungsbeziehung](https://docs.xoev.de/api/v1/branches/4232a17b/anleitung_nutzung_codelisten/media/fall_c_nutzungsbeziehung.png)
Daraufhin wird das bisherige Paket der Codeliste (im Beispiel Codelisten::externe Codelisten::automatisch gepflegte Codelisten::urn:xoev-de:kosit:codeliste:country-codes
) wie folgt durch das neue Paket ersetzt: Rechtsklick auf das bisherige Paket der Codeliste → Refaktorierung (Umgestaltung)
→ Ersetzen durch...
→ Vorgang fortsetzen → importiertes Paket der Codeliste mit einem Doppelklick auswählen
Das neue Paket wird an den bisherigen Ort der Codeliste (Codelisten::externe Codelisten::automatisch gepflegte Codelisten
) verschoben. Hierfür muss zunächst der Schreibschutz des importierten Moduls aufgehoben werden: Optionen
→ Module
→ Auswahl des importierten Codelisten-Moduls → Lese- und Schreibzugriff
Fall D: Eine Version soll in das XÖV-Fachmodell aufgenommen und die bisherigen Versionen der Codeliste im Modell beibehalten werden
In diesem Fall wird vor der Übernahme der importierten Inhalte in die eigenen Modellstrukturen wie in Fall C beschrieben auf die neue Codelistenversion umgestellt.
Im Unterschied zu Fall C wird daraufhin das bisherige Paket der Codeliste (im Beispiel Codelisten::externe Codelisten::automatisch gepflegte Codelisten::urn:xoev-de:kosit:codeliste:country-codes
) beibehalten. Außerdem wird das Paket der neu importierten Version (im Beispiel 4
) in dieses Codelisten-Paket verschoben (nach Aufheben des Schreibschutzes). Letztlich wird die bestehende UML-Klasse der Codeliste durch die UML-Klasse der neu importierten Codeliste ersetzt: Rechtsklick auf die bisherige UML-Klasse der Codeliste → Refaktorierung (Umgestaltung)
→ Ersetzen durch...
→ Vorgang fortsetzen → importiertes UML-Klasse der Codeliste mit einem Doppelklick auswählen
Daraufhin wird die neu importierte UML-Klasse der Codeliste in das bestehende Paket der Codeliste verschoben. Hierfür muss zunächst der Schreibschutz des importierten Moduls aufgehoben werden: Optionen
→ Module
→ Auswahl des importierten Codelisten-Moduls → Lese- und Schreibzugriff