Format der Vorlage

Die Vorlage ist eine ganz normale Text-Datei im OpenDocument-Format (ODF). Die übliche Endung einer solchen Datei ist .odt. Im Folgenden wird angenommen, diese Datei wurde mit OpenOffice 2.0 erstellt. Innerhalb dieser Vorlage können sowohl im Text als auch in den Kopf- und Fußzeilen bestimmte Platzhalter gesetzt werden, die die Arbeit der ODTCreatorUnit steuern. Diese Marken werden entweder durch den Inhalt eines Feldes ersetzt oder sie begrenzen Blöcke, die für jedes Vorkommen eines Knotens wiederholt werden. Daneben gibt es noch spezielle Anweisungen, die die Unit sehr flexibel steuern können.

Marken:

Alle Marken werden grundsätzlich mit {-- geöffnet und mit --} geschlossen. Also so:

{--Marke--}

Zwischen den Begrenzungen und dem Feldnamen, dem Knotennamen, bzw. der Anweisung dürfen keine Leerzeichen sein.

{--Richtig--}
{-- Falsch --}

Ist die Marke unbekannt (z. B. weil das angegebene Feld nicht existiert), wird im Standard statt des Feldwertes ein Fragezeichen ausgegeben. Über den Unit-Parameter unknown tags replacement kann eine andere Zeichenkette angegeben werden.

Blöcke:

Blöcke werden, ähnlich wie bei XML, mit einem Slash / geschlossen. Alle Marken, die Blöcke einrahmen, müssen immer am Anfang einer Zeile stehen, die auch nur diese Marke zum Inhalt hat. Diese Zeilen werden bei der Verarbeitung gelöscht.

Also das {--Block--} wäre völlig
falsch. {--/Block--}

{--Block--}
Aber so geht das.
{--/Block--}

Blöcke müssen sich auf Knoten in der Datenstruktur beziehen. Der Inhalt von Blöcken wird so oft wiederholt, wie der jeweilige Knoten vorkommt (also pro Datensatz dieses Knotens).

Ein Knoten oder Feld kann immer nur innerhalb eines Blocks angesprochen werden, der sich auf den direkt darüberliegenden Knoten bezieht. Im nachfolgenden Beispiel kann der Knoten PosKopf also nur im Block Position angesprochen werden, nicht im umgebenden Block Rechnung. Ist ein Block unbekannt (z. B. weil der angegebene Knoten nicht existiert), wird der komplette Block nicht dargestellt.

Die Vorlage muss den äußersten Block immer auf den Knoten beziehen, der als root node gesetzt ist (bei Verwendung der Option create multiple files). Das muss nicht der oberste Knoten sein. Werden root node und create multiple files nicht verwendet, dann muss der äußerste Block sich auf das oberste Element des Baumes beziehen. Liegen mehrere Knoten in der obersten Ebene, können sie alle so angesprochen werden.

Anweisungen:

Anweisungen beginnen immer mit der Kennung odtcreator, gefolgt von einem Doppelpunkt und der Anweisung. Darauf können, durch Doppelpunkte getrennt, Parameter für die Anweisung folgen. Anweisungen können auch Blöcke bilden. In diesem Falle reicht als schließende Marke der Teil /odtcreator:<Anweisung>. Weitere Angaben danach werden ignoriert.

Zum Beispiel:

{--odtcreator:if:equal:Anrede:Herr--}
Inhalt des Blocks
{--/odtcreator:if:das wird ignoriert:das auch:das auch--}

Zum einfacheren Verständnis folgt ein praktisches Beispiel. Es sollen die Daten mehrerer Rechnungen in einzelne Rechnungs-Dokumente umgesetzt werden.