Gerrit Imsieke edited this page Feb 9, 2017 · 22 revisions
Clone this wiki locally

XProc showroom: Cool things done with XProc

XProc is said to have a problematic learning curve even for people familiar with XSLT or XQuery. The XProc showroom at XML Prague 2017's Unconference Day will prove this effort is worth it by presenting solutions developed using this technology.

As a kickoff we will give a short introduction discussing the classical “publishing pipeline”, often used to motivate the use of XProc.

After that developers will present their projects in short talks (about 15 minutes). They will tell you how XProc is used in their projects and give you insights why it is the right tool for their tasks. The projects will cover a wide range of XML use cases, such as single source publishing, EPUB production, digital humanities, or creation of static web sites.

At we end we will have an “ask your expert” round where you can talk with the presenters and can get hints how to use XProc in your projects.

This event is organised by Gerrit Imsieke and Achim Berndzen. Please contact us if you want to submit a project presentation proposal or if you have any other questions or suggestions.

List of talks:

Create LaTeX from docx or XML

Martin Kraetke, le-tex


Configurable libraries and front-end scripts for converting docx, including OMML formulas, to XML+MathML and to convert XML+MathML to LaTeX.

XProc and Containers to the rescue

Erik Siegel, Xatapult

In my line of work I often have to transform complex sets of XML files, that usually come bundled in a zip file. For instance Microsoft Word or Excel files but als various custom formats. The output of such a transformation is often another zip file with equally complex XML.

A neat trick in working with these sets is creating a "XML container", transform this and write the container back. XProc makes this easy by being able to standardize important parts of the processing chain into nice little self-contained custom steps.

The talk will show the principles of all this: what is a XML container, how does XProc help here.

An EPUB production pipeline

Romain Deltour, DAISY Consortium

The DAISY Pipeline is an open source framework for XProc-based document conversion pipelines, used by members of the DAISY Consortium to produce accessible content –notably EPUB publications– for the blind and visually impaired.

The presentation will briefly describe the architectural approach, demo the tool, and give a couple generic tips and tricks.

Font Subsetter

Fränze Gramsch, le-tex

A pipeline that is based on fonttools, a Python library that is called by p:exec, and the transpect CSS parser. It will process an HTML input, parse @font-face declarations in the associated CSS, analyze which character is supposed to be rendered with which font, filter the glyph lists of the referenced fonts, and create custom fonts that will be referenced in a patched CSS. Fränze will demonstrate a front-end pipeline that extracts a compound HTML from an existing EPUB first and write back the same EPUB, only with subset fonts.

docx and IDML synthesis

Maren Pufe, le-tex

Maren will demonstrate two pipelines: The first converts BITS to docx, the second TEI to IDML.

The building blocks, hub2docx-lib and xml2idml, are available on Github.


The Wolfenbüttel emblem2rdf pipeline

David Maus, Herzog August Bibliothek Wolfenbüttel

The Herzog August Bibliothek Wolfenbüttel, a library and institute for research on the medieval and early modern periods, discovered XProc as a valuable tool for XML-oriented data processing. In my talk I'll show how we use XProc to publish descriptions of early modern emblems and emblem books as linked open data.


XProc pipelines at the heart of WebApps

Achim Berndzen, <xml-project />

XRX (XForms-REST-XQuery) is a well established design pattern for WebApps in an XML environment. In my talk I will show a complex WebApp heavily using XProc pipelines and discuss the reasons for using XProc as a replacement for XQuery.

A Javadoc for XProc Pipelines

Martin Kraetke, le-tex

transpect.io GitHub

This project shows how to take advantage of XProc's p:documentation tag to generate a documentation from XProc pipelines.

Managing dependencies with XProc

Norman Walsh

I've got a pipeline and some extensions that manage dependencies (a la Make) in XProc. I'll run through those and waffle on a bit.