This page contains errors and corrections in XProc 3.0 Programmer Reference. If you find an error in the book, please send email to that describes what the error is and where in the book you found it. Errata are shown in the table in chronological order, with the newest items added at the bottom of the table.

Edition Location Description Status Date Found by
1st Chapter 7, Core Steps, Example 7.2 (page 148 in the print edition) This example contains an invalid attribute name for the <p:add-attribute> step. The example uses a select attribute, but it should be the attribute-value attribute:

<p:declare-step xmlns:p="" version="3.0">

  <p:input port="source"/>
  <p:output port="result"/>

    <!-- 1 - Selection using the p:for-each's anonymous input port: -->
    <p:with-input select="/*/doc"/>
    <!-- 2 - Add a timestamp attribute: -->
    <p:add-attribute attribute-name="timestamp"
    <!-- 3 - Write the result to disk: -->
    <p:store href="{concat('/some/path/doc-',
             p:iteration-position(), '.xml')}"/>

  <!-- 4 - Discard the documents, just report a count: -->

Confirmed July 7, 2020 Erik Siegel
1st Chapter 4, Programming Concepts, Common attributes (page 76 in the print edition) The text and title for the section “The xml:id attribute” on page 76 should be as follows:

“The xml:id, xml:lang, and xml:space attributes”

The xml:id, xml:lang, and xml:space attributes can appear anywhere. Currently, XProc does nothing with these attributes.

Confirmed July 7, 2020 Eirk Siegel