p:document 002
The pipeline
<p:declare-step xmlns:p="http://www.w3.org/ns/xproc"
xmlns:t="http://xproc.org/ns/testsuite/3.0" version="3.0">
<p:output port="result"/>
<p:identity>
<p:with-input>
<p:document href="learning.html"
xml:base="http://xproc.org/"/>
</p:with-input>
</p:identity>
</p:declare-step>
Result
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:t="http://xproc.org/ns/testsuite/3.0">
<head>
<meta content="text/html; charset=utf-8"
http-equiv="Content-Type"/>
<meta content="ie=edge"
http-equiv="x-ua-compatible"/>
<meta content="width=device-width, initial-scale=1"
name="viewport"/>
<link href="css/tufte.css" rel="stylesheet"/>
<link href="css/xproc.css" rel="stylesheet"/>
<link href="https://use.typekit.net/zgg8zqr.css"
rel="stylesheet"/>
<script crossorigin="anonymous"
integrity="sha256-BJeo0qm959uMBGb65z40ejJYGSgR7REI4+CW1fNKwOg="
src="https://code.jquery.com/jquery-3.4.0.min.js"/>
<script src="js/mdecl.js"/>
<link href="img/favicon.gif" rel="icon"/>
<title>XProc - Learning</title>
</head>
<body>
<main>
<header>
<nav class="sidebar">
<img alt="[Logo]" id="mainlogo"
src="img/logo.png"/>
<ul>
<li>
<a href="index.html">Home</a>
</li>
<li>
<a href="introduction.html">Introduction</a>
</li>
<li>
<a href="specifications.html">Specification</a>
</li>
<li>
<a href="processors.html">Processors</a>
</li>
<li>
<a href="learning.html">Learning</a>
</li>
<li>
<a href="test-suite.html">Test suite</a>
</li>
<li>
<a href="https://dashboard.xproc.org/">Dashboard</a>
</li>
</ul>
</nav>
<nav class="inline">
<ul>
<li>
<a href="index.html">Home</a>
</li>
<li>
<a href="introduction.html">Introduction</a>
</li>
<li>
<a href="specifications.html">Specification</a>
</li>
<li>
<a href="processors.html">Processors</a>
</li>
<li>
<a href="learning.html">Learning</a>
</li>
<li>
<a href="test-suite.html">Test suite</a>
</li>
<li>
<a href="https://dashboard.xproc.org/">Dashboard</a>
</li>
</ul>
</nav>
</header>
<article>
<h1>XProc - Learning</h1>
<p>We have collected as many learning materials as possible about XProc. This is all about version 3.0 (and also usable for 3.1).</p>
<h2>Book</h2>
<a href="https://xmlpress.net/publications/xproc-3-0/">
<img src="img/book-front-page-2.png"
width="15%"/>
</a>
<p>The <em>XProc 3.0 Programmer Reference</em> by Erik Siegel is available for sale <a href="https://xmlpress.net/publications/xproc-3-0/">here</a>.</p>
<p>
<a href="https://xprocref.org/index.html">XProcRef</a> is an accompanying support website with user/programmer oriented reference information about the built-in steps.</p>
<h2>XProc 101</h2>
<p>Introductory learning materials about XProc:</p>
<ul>
<li>Articles:
<ul>
<li>
<a href="https://www.xml.com/articles/2019/11/05/introduction-xproc-30/">An Introduction to XProc 3.0</a> (Erik Siegel on <a href="https://www.xml.com/">xml.com</a>)</li>
<li>
<a href="https://www.xml.com/articles/2020/01/23/xproc-30-connecting-steps-using-ports/">XProc 3.0 - Connecting steps using ports</a> (Erik Siegel on <a href="https://www.xml.com/">xml.com</a>)</li>
</ul>
</li>
<li>Tutorials:
<ul>
<li>
<a href="https://xporc.net/xproc-tutorial/">XProc 3.0 Tutorial</a> (Martin Kraetke on <a href="https://xporc.net">xporc.net</a>)</li>
</ul>
</li>
<li>Conference proceedings:
<ul>
<li>
<a href="https://www.balisage.net/Proceedings/vol23/html/Walsh02/BalisageVol23-Walsh02.html">XProc 3.0</a> (Norman Tovey-Walsh and Achim Berndzen at <a href="https://www.balisage.net/">Balisage</a> 2019)</li>
</ul>
</li>
<li>Recorded conference talks:
<ul>
<li>
<a href="https://www.youtube.com/watch?v=P5fnBnJhUGA">Introduction to XProc 3.0</a> (Erik Siegel at <a href="https://declarative.amsterdam/">Declarative Amsterdam</a> 2021)</li>
<li>
<a href="https://youtu.be/Q42bhIbSYLk">XProc 3.0: Ready or Not</a> (Norman Tovey-Walsh at <a href="https://www.xmlprague.cz/">XML Prague</a> 2020)</li>
</ul>
</li>
<li>Webinars:
<ul>
<li>
<a href="https://youtu.be/g_ockOvU57U">XProc 3.0 101 - Part 1</a> (Erik Siegel at <a href="https://markupuk.org/">Markup UK</a> 2020)</li>
<li>
<a href="https://youtu.be/q0JSy07O2_I">XProc 3.0 101 - Part 2</a> (Erik Siegel at <a href="https://markupuk.org/">Markup UK</a> 2020)</li>
</ul>
</li>
</ul>
<h2>XProc Advanced</h2>
<p>Information about the more advanced usage of XProc:</p>
<ul>
<li>Articles:
<ul>
<li>
<a href="https://www.xml.com/articles/2020/11/16/xproc-30-strategies-merging-documents/">XProc 3.0 - Strategies for merging documents</a> (Erik Siegel on <a href="https://www.xml.com/">xml.com</a>)</li>
</ul>
</li>
<li>Conference proceedings
<ul>
<li>
<a href="https://markupuk.org/2018/Markup-UK-2018-proceedings.pdf">Non-XML workflows with XProc 3.0</a> (Achim Berndzen at <a href="https://markupuk.org/">Markup UK</a> 2018)</li>
</ul>
</li>
<li>Webinars:
<ul>
<li>
<a href="https://youtu.be/9Cbs8H4Gl3o">Working with JSON in XProc 3.0</a> (Achim Berndzen at <a href="https://markupuk.org/">Markup UK</a> 2020)</li>
<li>
<a href="https://youtu.be/6yvO4GOue6k">Dealing with ZIP Documents in XProc 3.0</a> (Erik Siegel at <a href="https://markupuk.org/">Markup UK</a> 2020)</li>
<li>
<a href="https://youtu.be/xwR8sH8vc8Q">Text Documents in XProc 3.0</a> (Achim Berndzen at <a href="https://markupuk.org/">Markup UK</a> 2020)</li>
</ul>
</li>
</ul>
<h2>XProc History</h2>
<p>Materials from XProc (3.0) illustrious history:</p>
<ul>
<li>Recorded conference talks:
<ul>
<li>
<a href="https://youtu.be/O51aE311BKU">Excellent XProc 3.0</a> (Erik Siegel at <a href="https://www.xmlprague.cz/">XML Prague</a> 2019)</li>
<li>
<a href="https://youtu.be/flej2PNT7yY">XProc 3.0</a> (Achim Berndzen, Gerrit Imsieke and Norman Tovey-Walsh at <a href="https://www.xmlprague.cz/">XML Prague</a> 2018)</li>
<li>
<a href="https://youtu.be/75Tk4zHOSxw">The state of XProc 3.0</a> (Norman Tovey-Walsh at <a href="https://www.xmlprague.cz/">XML Prague</a> 2017)</li>
</ul>
</li>
</ul>
</article>
<footer>
<div class="iblock">Published 30 May 2025</div>
</footer>
</main>
</body>
</html>
Schematron checks
<s:schema xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://purl.oclc.org/dsdl/schematron" xmlns:t="http://xproc.org/ns/testsuite/3.0"
queryBinding="xslt2">
<s:ns uri="http://www.w3.org/1999/xhtml"
prefix="html"/>
<s:pattern>
<s:rule context="/">
<s:assert test="html:html/html:head/html:title='XProc - Learning'">Element hmtl/head/title is not 'XProc - Learning'.</s:assert>
</s:rule>
</s:pattern>
</s:schema>
Revision history
- 19 Sep 2024, Achim Berndzen
Changed expected document title due to change of website. - 10 Jun 2021, Achim Berndzen
Added attribute 'queryBinding' to schematron's schema. - 11 Jun 2020, Achim Berndzen
Changed test as a consequence of removing of xproc.org/about.html. - 31 Aug 2019, Achim Berndzen
Change target for http-request to xproc.org. - 03 Apr 2018, Achim Berndzen
Some new tests.