Ausgangslage: Wir möchten hochstrukturierte XML-Dateien erzeugen,
beispielsweise E-Rechnungen nach den Standards ZUGFeRD und XRechnung.
Ablauf
-
Einlesen des betreffenden XML-Templates mit Platzhaltern
-
Wandlung des XML-Templates in eine hierarchische Datenstruktur der
Programmiersprache (XML-Baum)
-
Ersetzen der Platzhalter im XML-Baum durch konrete Werte
-
Entfernen aller unersetzten Platzhalter
-
Entfernen aller leeren Knoten des Baums (rekursiv)
-
Wandeln des resultierenden Baums in XML-Code
XML::Compile
Als wichtigstes Hilfsmittel zur Durchführung der Aufgabe verwenden wir das
Perl-Package XML::Compile. Es leistet (unter Rückgriff auf die
betreffende XML Schemadefinition) Folgendes:
-
Es generiert ein XML-Template zur Schemadefinition
-
Es übersetzt XML-Code (z.B. das Template) in eine Datenstruktur (XML-Baum),
die mit Mitteln der Programmiersprache (Perl) bearbeitet werden kann
-
Es rückübersetzt den finalen XML-Baum in XML-Code