Created on: Jul 13, 2013
Author: Stefan Krause
Dieses Stylesheet teilt XML-Dokumente gruppenweise in mehrere Einzelddateien auf.
Dieses Stylesheet und die dazugehörige Dokumentation sind unter der sogenannten Expat License (einer GPL-kompatiblen MIT License) lizensiert.
Es darf – als Ganzes oder auszugweise – unter Beibehaltung der Copyright-Notiz kopiert, verändert, veröffentlicht und verbreitet werden.
Die Copyright-Notiz steht am Anfang des Quelltextes des Stylesheets.
Anzahl der Elemente pro Ausgabedatei
Dieser Wert bestimmt die Größe der Gruppen und damit auch, welche Elemente als Gruppenanfang in Frage kommen.
Ist bspw. $elemente-pro-datei gleich 20, dann sind mögliche Gruppenanfänge
die Elemente mit der Position 1, 21, 41 usw. Damit wird sichergestellt,
dass die Ausgabedateien (mit Ausnahme der letzten) immer vollständige Gruppen enthalten.
Mit einem Wert von 1 wird je Element eine Datei ausgegeben.
20
Position des ersten zu kopierenden Elementes
Ohne Angabe eines Wertes wird das erste Element gewählt.
Fällt die angegebene Position nicht auf den Anfang einer Gruppe, der sich aus dem Wert für $elemente-pro-datei ergibt, wird das nächste vorhergehende Element, das ein Gruppenanfang ist, gewählt.
1
Position des letzten zu kopierenden Elementes
Ohne Angabe eines Wertes wird das letzte Element der Ausgangsdatei gewählt
Fällt die angegebene Position nicht auf das Ende einer Gruppe, der sich aus dem Wert für $elemente-pro-datei ergibt, wird das nächst folgende Element, das ein Gruppenende ist, gewählt.
Ordner für die Ausgabe der geteilten Dateien als URI, ohne schließenden Schrägstrich
Ohne Angabe eines Ausgabeordners werden die Dateien in den Ordner des Ausgangsdokumentes in einen Unterordner geteilt geschrieben.
Präfix für die Ausgabedateien
Ohne Angabe eines Wertes wird der Name der Ausgangsdatei (ohne Dateierweiterung) mit einem nachgestellten Unterstrich verwendet.
Dateityp-Erweiterung für die Ausgabedateien
Ohne Angabe eines Wertes wird die Dateierweiterung der Ausgangsdatei verwendet.
Formatierung der Zählstellen, als Picture-String (siehe http://www.w3schools.com/xsl/func_formatnumber.asp)
Wird kein Wert übergeben, werden führende Nullen entsprechend der Anzahl der Elemente im Ausgangsdokument ausgegeben.
Sollen nodes() vor dem ersten Element (Kommentare und/oder Processing-Instructions) in jede Ausgabe-Datei an den Anfang kopiert werden?
Bei false werden entsprechende Knoten nur in die erste Datei kopiert.
Hinweis: Vor dem Wurzelelement stehen oft Lizenzangaben in Kommentaren oder Processing Instructions wie bspw. das xml-model
(siehe die W3C Working Group Note Associating Schemas with XML documents).
Es kann wünschenswert sein, diese Informationen zu wiederholen.
Verhindert, dass vorhandene Dateien überschrieben werden.
Hinweis: Um die Existenz einer Datei zu prüfen, muss die Datei geparst werden. Bei vielen und/oder großen bereits vorhandenen Ausgabedokumenten
kann das sehr zeitaufwändig sein. In diesen Fällen empfiehlt es sich, erhaltenswerte Dokumente zu sichern und den Parameter auf false zu setzen.
Es werden immer vollständige Gruppen ausgegeben. Die folgenden Variablen bestimmen, welche Gruppen das sind.
ermittelt die auszugebenden nodes
Diese Funktion kann insbesondere überschrieben werden, um
nodes auf einer anderen Ebene als der zweiten auszuwählen
die auszugebenden nodes zu filtern
das Wurzelelement
auszugebende Elemente, Kommentare, Texte, processing instructions
ermittelt die Gruppen-Nummer für einen gegebenen node()
als Element, text(), comment() oder processing-instruction()
Nummer der Gruppe, zu der der node gehört
berechnet die Nummer der Gruppe, zu der ein Element mit einer gegebenen Position gehört
position des Elementes
Gruppennummer