Feature der Woche: XProc Filter
Ruft man sp --help
auf, so erscheint folgender Eintrag:
$ sp --help
Usage: [parameter] command
--filter=FILTER Run XPROC filter before publishing starts
Was hat es mit diesem Filter auf sich? Was ist XProc?
XProc ist eine in XML formulierte Sprache, um Anweisungen hintereinander auszuführen. Man kann es sich wie ein »in XML formuliertes Make« vorstellen, um verschiedene Dinge zu tun. So könnte man eine XSLT-Transformation anstoßen, XML validieren oder Dateien kopieren.
Eine XSLT-Transformation könnte so aussehen:
<?xml version="1.0" encoding="UTF-8"?>
<p:declare-step xmlns:p="http://www.w3.org/ns/xproc"
xmlns:c="http://www.w3.org/ns/xproc-step" version="1.0">
<p:xslt name="Transformation">
<p:input port="parameters">
<p:empty/>
</p:input>
<p:input port="source">
<p:document href="eingabedatei.xml"/>
</p:input>
<p:input port="stylesheet">
<p:document href="transformation.xsl"/>
</p:input>
</p:xslt>
<p:store href="data.xml"/>
</p:declare-step>
Diese Instruktionen speichert man z.B. unter filter.xpl
.
Die Syntax ist zwar etwas gewöhnungsbedürftig, aber durchaus erlernbar. Der Wikipediaeintrag zu XProc hilft hier weiter
Nun kann man mit
sp --filter filter.xpl run
den Publisher starten, während vorher einmalig die XProc-Anweisungen ausgeführt werden.
Dieser Artikel bezieht sich auf den speedata Publisher in der Version 2.7.10. Andere Versionen haben womöglich andere Befehle oder die genannten Befehle zeigen ein anderes Verhalten. Bitte schau im Zweifelsfall in der Anleitung nach.
In der Serie »Feature der Woche« beschreibe ich einmal in der Woche mehr oder weniger nützliche Eigenschaften des Publishers. Kommentare gerne an mich per E-Mail oder einfach im Kommentarfeld.