Sie sind hier:

Nutzung einer Codeliste aus dem XRepository im XÖV-Fachmodell

Mit dieser Anleitung wird beschrieben, wie eine über das XRepository bezogene Codeliste im mdxml-Format im eigenen XÖV-Fachmodell genutzt werden kann.

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:

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:

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:

Nun wird die Nutzungsbeziehung auf die neue Klasse umgesetzt:

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:

Nun wird die Nutzungsbeziehung auf die neue Version umgesetzt:

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"

Entfernen des importierten Moduls

Schließlich wird das importierte Modul über das Menü "Optionen" → "Module" → Auswahl des importierten Codelisten-Moduls → "Entferne Module" → "Remove with References" wieder entfernt.