Skip to content

Latest commit

 

History

History
86 lines (56 loc) · 4.6 KB

README.adoc

File metadata and controls

86 lines (56 loc) · 4.6 KB

Maven Metadata

Was ist gdv-xport-lib?

gdv-xport-lib ist eine Java-Bibliothek, die den Umgang mit dem GDV-Format erleichtert. Sie vereinfacht den Export und Import dieses Datenformats und ermoeglicht die Validierung der verschiedenen Datensaetze.

Mit 3.0 wurde die ArtifactId für Maven in "gdv-xport-lib" umbenannt (bis 2.x: "gdv-xport"). In 4.0 wurden Inkonsistenzen zwischen den einzelnen Enum-Klassen, die die Datensaetze beschreiben, und den entsprechenden Bezeichner-Konstanten bereinigt. Ferner basiert 4.0 jetzt auf der 2018er-Version der XML-Datei von gdv-online.

Version 5 basiert nun komplett auf die XML-Beschreibung von gdv-online. Ferner kann man sich in v5 über XmlService.getInstance("VUVM2013.xml") gezielt auf eine bestimmte Version der XML-Beschreibung beziehen.

Kompatibilitaet von v5 zu v4

In Satz 0221.051 (Kfz) gibt es ein Abweichung von der Beschreibung ueber die Enum-Klasse gdv.xport.satz.feld.sparte51.Feld221 und der XML-Beschreibung des GDVs. Waehrend in der Enum-Beschreibung die KH-Deckungssummen in Teil 1, 2 und 3 aufgeteilt sind, sind diese in der XML-Beschreibung nur als Ganzes deklariert. Lediglich in der Beschreibung zu diesem Feld wird darauf verwiesen, dass dieses Feld eigentlich aus 3 Teilen besteht. Möchte man hier das alte Verhalten, muss man die Resource "Satz0221.051.xml" als SatzXML-Instanz in SatzRegistry registrieren:

    SatzRegistry.getInstance().register(SatzXml.of("Satz0221.051.xml"), SatzTyp.of(221, 51));

Da mit v5 die Enum-Aufzählungstypen komplett durch XML-Beschreibungen ersetzt werden können, sind sie jetzt als @Deprecated gekennzeichnet. Sie werden mit v6 verschwinden bzw. nach [gdv-xport-deprecated](../deprecated/README.adoc) verschoben.

Für eigene Enum-Beschreibungen, die man gerne weiterverwenden möchte, wurde der GdvXmlFormatter eingeführt. Mit ihm können die Enum-Beschreibungen nach XML konvertiert werden:

    SatzTyp kfz = SatzTyp.of(221, 51);
    SatzRegistry.getInstance().registerEnum(gdv.xport.satz.feld.sparte51.Feld221.class, kfz);
    Satz satz = SatzFactory.getDatensatz(kfz);
    try (FileOutputStream ostream = new FileOutputStream(new File("Satz0221.051.xml"));
         GdvXmlFormatter formatter = new GdvXmlFormatter(ostream)) {
        formatter.write(satz);
    }

Mit diesem Beispiel wird die Enum aus Feld221 als XML in die Datei "Satz0221.051.xml" geschrieben. Diese Datei kann dann über die SatzXML-Klasse für die Registrierung eigener Sätze verwendet werden.

Kompatibilitaet von v3 zu v4

Durch die Anpassung der Eintraege in den Enum-Klassen an die entsprechende Bezeichner-Konstante sind einzelnen Enum-Klassen nicht mehr zur Vorgaenger-Version kompatibel. Solche Enum-Klassen liegen dann zusaetzlich in der Vorgaenger-Version im Modul 'gdv-xport-deprecated' vor. Damit hat man beim Umsteig auf v4 die Wahl:

  • man bleibt bei v3

  • man bindet 'gdv-xport-deprecated' als zusaetzliche Abhaengigkeit ein und tauscht dann nur die Import-Anweisung aus

  • man passt die umbenannten Eintraege in seinem Sourcecode an

  • man verabschiedet sich von der Enum-Klasse und greift ueber die Bezeichner-Klasse auf Satz-Felder zu (empfohlene Variante)

Desweiteren wurden Methoden, die bereits in v3 als deprecated markiert waren, entfernt.

Mit der Umstellung auf die aktuelle XML-Datei (VUVM2018.xml) wurde die Version von 2013 (VUVM2013.xml) ebenfalls nach 'gdv-xport-deprecated' verschoben. Die Vorgaengerversion (VUMVM2015.xml) hingegen ist noch in 'gdv-lib' enthalten.

Kompatibilitaet von v2 zu v3

Waehrend Version 2 auf der 2013er-Version der XML-Datei von gdv-online basiert, wurde Version 3 auf die aktuelle Version von 2015 aktualisiert. Diese Aenderungen sind aber abwaertskompatibel. Allerdings wurde mit der Aktualisierung auch die Bezeichner-Klasse ueberarbeitet:

  • die String-Konstanten "NAME_xxx", die als @Deprecated waren, wurden entfernt,

  • die Bezeichner-Konstanten wurden geprueft, Schreibfehler entfernt und doppelte Eintraege entfernt,

  • verwaiste Konstanten, die in der XML-Datei nicht vorhanden sind, wurden entfernt.

Dadurch kann es sein, dass manche Konstanten irrtuemlich geloescht wurden. Sollte dies der Fall sein, ein Issue erstellen. Man kann natuerlich auch die Konstanten in seiner Anwendung selber definieren.

Weitere Infos

oberstes README