Open j3nsch opened 2 years ago
Der Namespace der Klassen spielt vermutlich bereits keine Rolle. Die XML Erzeugung funktioniert also vielleicht auch mit Klassen, die in Opus\Common\Model
angelegt sind. Langfristig ist es aber auf jeden Fall besser, wenn es keine direkte Abhängigkeit auf den Klassennamen gibt. Die Klassen könnten z.B. über eine getModelType
Funktion, einen Namen zurück liefern, der dann für das XML verwendet wird.
Im ersten Schritt sollte die "Generierung" des Namens in eine separate Funktion ausgelagert werden, die dann später angepasst werden kann. Spätere Klassen für XML-Formate könnten zusätzlich ein konfigurierbares Mapping verwenden, um für Modelle Elementen mit anderen Namen zu erzeugen.
Die Elemente in OPUS-XML kommen direkt von den Klassennamen. Aus der Klasse Opus_Document wird das Element Opus_Document. Mit der Umstellung auf Namespaces müssen jetzt mit zusätzlichem Code die Backslashes in Unterstriche verwandelt werden, damit die Klasse Opus\Document immer noch das gleiche Element Opus_Document erzeugt.
Das XML sollte nicht von den Klassennamen abhängen. Das macht Änderungen an den Klassen schwierig und ist nicht notwendig.