Inzwischen werden alle Satzarten aus der XML-Beschreibung von gdv-online.de abgeleitet und unterstützt. Auf Basis dieser XML-Beschreibung können auch eigene Erweiterungen definiert und bei der SatzRegistry registriert werden.
Ein Beispiel für solch eine XML-Datei findest du unter Satz0221.051.xml. Im Unterschied zur Original-Beschreibung sind hier die zusammengefassten Währungseinheiten von Satzart 0221.051 in 3 Teile aufgeteilt. Den Test als Beispiel für eine Registrierung findest du unter SatzRegistryTest (Zeile 52 - 74:
@Test public void testSatzart0221051() throws XMLStreamException, IOException { SatzTyp kfz = SatzTyp.of(221, 51); SatzRegistry satzRegistry = SatzRegistry.getInstance(); try { satzRegistry.register(SatzXml.of("Satz0221.051.xml"), kfz, SatzRegistry.NO_VALIDATOR); Datensatz satz = satzRegistry.getDatensatz(kfz); ... } finally { satzRegistry.unregister(kfz); } }
Normalerweise kannst du zur Registrierung eigener Satzarten nur den vom GDV vorgesehenen Bereich von 800 bis 900 verwenden.
Willst du Satzarten außerhalb diesen Bereichs registrieren, musst du die Validierung abschalten.
Dies kannst du, indem du als letzten Parameter einen Validator (hier: SatzRegistry.NO_VALIDATOR
) angibst.
Du kannst auch eigenen Datensätze registrieren, die von Datensatz oder Satz abgeleitet sind. Im demo-Paket findest du MyUnfallDatensatz als Beispielklasse. In der main-Methode wird die Klasse im Framework registriert. Anschliessend wird das Muster-Datenpaket von gdv-online importiert und der erste gefundene MyUnfallDatensatz als XML ausgegeben:
<service> <info> <stand>(c)reated by gdv-xport at 2021-11-18</stand> </info> <satzarten> <!-- Satzart 0210.030 --> <satzart> <kennzeichnung> <feldreferenz referenz="001-004-Satzart-Numerisch"> <name>Satzart</name> <technischerName>Satzart</technischerName> <auspraegung>0210</auspraegung> </feldreferenz> <feldreferenz referenz="011-013-Sparte-Unbekannt"> <name>Sparte</name> <technischerName>Sparte</technischerName> <auspraegung>030</auspraegung> </feldreferenz> <feldreferenz referenz="256-255-Satznummer-Unbekannt"> <name>Satznummer</name> <technischerName>Satznummer</technischerName> </feldreferenz> </kennzeichnung> <version> </version> <!-- Teildatensatz 1 Satzart 0210.030 --> <satzanfang teilsatz="1"/> <!-- NumFeld Satzart (1-4) --> <feldreferenz referenz="001-004-Satzart-Numerisch"> <name>Satzart</name> <technischerName>Satzart</technischerName> <auspraegung>0210</auspraegung> </feldreferenz> <!-- VUNummer VuNr (5-9) --> <feldreferenz referenz="005-009-VuNr-Vunummer"> <name>VU-Nummer</name> <technischerName>VuNr</technischerName> <auspraegung>9999</auspraegung> </feldreferenz> ...
In der Anfangsphase von gdv.xport konnten eigene Datensätze auch mithilfe von Enum-Klassen definiert werden. Diese Möglichkeit entfällt mit v6.