XMLSplitter
Der XMLSplitter kann sehr große XML-Dateien in kleiner Dateien aufsplitten. Das ist z.B. bei der Arbeit mit dem Step XMLReader notwendig, da sehr große Dateien z.B. > 50MB für Probleme und hohen Ressourcen-Verbrauch bei der Verarbeitung führen. Deshalb muss die große Datei aufgeteilt werden.
Beispiel
Nehmen wir an, folgende XML-Datei soll in eine Datei pro ARTIKEL aufgesplittet werden:
<?xml version="1.0" encoding="ISO-8859-1"?>
<ARTIKELLISTE>
<ARTIKEL>
<LFSN>ZEG</LFSN>
<LFKURZBEZ>ZEG</LFKURZBEZ>
<INTARTNR>8592</INTARTNR>
<ARTNR>010-12983</ARTNR>
<REFARTNR>010-12983</REFARTNR>
<HERSTNR>870310 / 10870310</HERSTNR>
<MARKE>Schwalbe</MARKE>
<MARKENLOGO></MARKENLOGO>
<MODELL>High Pressure</MODELL>
<MODELLJAHR>0</MODELLJAHR>
<FARBE>blau</FARBE>
</ARTIKEL>
<ARTIKEL>
<LFSN>ZEG</LFSN>
<LFKURZBEZ>ZEG</LFKURZBEZ>
<INTARTNR>8593</INTARTNR>
<ARTNR>010-12984</ARTNR>
<REFARTNR>010-12984</REFARTNR>
<HERSTNR>870311 / 10870311</HERSTNR>
<MARKE>Simson</MARKE>
<MARKENLOGO></MARKENLOGO>
<MODELL>High Pressure</MODELL>
<MODELLJAHR>0</MODELLJAHR>
<FARBE>rot</FARBE>
</ARTIKEL>
</ARTIKELLISTE>
Jeder Artikel ist durch ein <ARTIKEL> Tag umschlossen.
Die Konfiguration dafür könnte so aussehen:
Hier passiert folgendes:
- splitTagName = ARTIKEL ist das Tag nach dem gesplittet werden soll
- numEntriesPerFile = 1 sagt, dass jede Datei ein ARTIKEL enthalten soll
- limit = 5 sagt, dass wir max. 5 Dateien insgesamt haben wollen (zum Testen kleine Werte nehmen, zum LIVE-Betrieb große Werte)
- encoding - das Encoding der Quell und Zieldateien.
- header - das was hier steht, wird jeder einzelnen gesplitteten Datei vor dem ARTIKEL voran gestellt
- footer - analog zu header, nur wird es am Ende angefügt