von Patrick Gundlach |

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.