Anleitung zur Codelistennutzung im Fachmodell

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

Import der Codeliste in das XÖV-Fachmodell

Nach dem Öffnen des XÖV-Fachmodells in MagicDraw wird die Codelisten-Datei über das Menü DateiUse ProjectVerwende lokales Modul in das Modell eingebunden:

import codelisten

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

Nun wird die Nutzungsbeziehung auf die neue Klasse umgesetzt:

fall b nutzungsbeziehung

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: OptionenModule → 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

Nun wird die Nutzungsbeziehung auf die neue Version umgesetzt:

fall c nutzungsbeziehung

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: OptionenModule → 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: OptionenModule → Auswahl des importierten Codelisten-Moduls → Lese- und Schreibzugriff