In this presentation we want to explore some aspects of the XProc 3.0 language that could be considered as declarative, while pointing out some other aspects that are potentially not. For doing so we will build the case by looking at some common patterns relevant to pipeline authors.
Stating that a programming language is "declarative", is not just a claim in computer science. It also has practical consequences. It is generally understood that declarative programming languages are easier to use and do allow people to solve problems in a shorter amount of time compared to other programming paradigms. Claiming that a programming language would be "declarative" implies that its use has commercial advances over other approaches to solve the same problem.
The question whether XProc 3.0 is a declarative language is, to our knowledge, rarely addressed. Control structures like p:choose or p:try in XProc 3.0 might raise doubts about the declarative nature. On the other hand, the level of abstraction in XProc's step infrastructure might at least hint to declarative features. We felt that this tension offered enough motivation to give it some further thoughts.
This presentation will not take the computer science theory route. Instead, we will focus on user experience while solving problems with XProc 3.0.
Presentation, 8 November 2022
Achim Berndzen earned an M.A. in philosophy at Aachen University and has more than 20 years of teaching experience in communications.
2014 he founded <xml-project/>. He is developer of MorganaXProc
and MorganaXProc-III, a fully compliant XProc 3.0 processor with an
configurability and plugability. Achim also works on projects use the
power of XProc and other XML technologies for customers.
Geert Bormans has long been an angle-bracket jack-of-all-trades. He loves
the beauty of a well-architected solution or a pure and simplified process.
Geert makes a living as an independent consultant providing XML or Linked
Open Data solutions, mainly to the publishing industry. He does so with a
broad geographical flexibility.
Currently Geert works for the Swiss administration. He is involved in the
publication of legislation using technologies such as XML, XSLT,
Schematron, RDF and a lot of XProc 3.0.