XProc
XProc ist eine XML-basierte deklarative Programmiersprache zur Verarbeitung von Daten. Es basiert dabei auf dem Konzept von Pipelines, die verschiedene Aktionen ausführen wie das Lesen und Schreiben von Daten, Web-Requests oder Transformationen und Prüfungen. Dabei konzentriert sich XProc hauptsächlich auf XML, kann aber auch HTML, JSON, Text und Binärdaten verarbeiten.
XProc 1.0 wurde 2010 als Web-Standard verabschiedet, allerdings hielt sich die Verbreitung von XProc in Grenzen. Die umständliche Syntax der ersten Version, wenig Tutorials und schlechte Debugging-Meldungen der XProc-Prozessoren machten die Lernkurve für Anfänger unnötig steil.
Zudem nutzen viele Programmierer traditionelle Skript- und Programmiersprachen, die als Glue Code zwischen den einzelnen XML-Verarbeitungsschritten fungierten. Die meisten von ihnen bieten nur eine schlechte Unterstützung für XML. Häufig ist der Code nicht deklarativ, hängt von installierten Tools ab und es mangelt ihm an Wiederverwendbarkeit und Interoperabilität.
Gegenüber diesen Ansätzen bietet XProc viele Vorteile: XProc kann nativ XML verarbeiten und mit der Abfragesprache XPath direkt auf bestimmte Zweige im XML-Baum zugreifen und XML-Knoten manipulieren. Für viele bekannte XML-Technologien wie XSLT, Schematron und RelaxNG bietet XProc fertige Steps in seiner umfangreichen Step-Bibliothek.
XProc erlaubt ein hohes Abstraktionsniveau, um auch komplexe Pipelines überschaubar zu halten. So kann man einfach eine Pipeline wieder als Step in eine andere Pipeline importieren und auf diese Weise Funktionalität kapseln. Moderne XProc-Prozessoren ermöglichen zudem eine effizientere Verarbeitung von Pipelines durch parallele Ausführung von Code und Caching.
Seit 2022 liegt XProc in Version 3.0 vor und führt zahlreiche neue Programmierkonzepte ein, welche die Sprache gleichzeitig einsteigerfreundlicher und mächtiger machen. Damit kann XProc als eine Art Schweizer Taschenmesser für viele XML-Anwendungen gelten.