This page contains errors and corrections in XProc 3.0 Programmer Reference. If you find an error in the book, please send email to publisher@xmlpress.net 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 top of the table.
Edition | Location | Description | Status | Date | Found by |
---|---|---|---|---|---|
1st | Chapter 10, XProc examples and recipes, Example 10.23 (page 227 in the print edition) |
The <p:option name="debug" select="true()" static="true"/> |
Confirmed | March 15, 2024 | Heidi Vanparys |
1st | Chapter 4, Programming Concepts, Example 4.17 (page 70 in the print edition) | The built-in Library step used here is shown as <p:set-attribute>, but it should be <p:add-attribute>, as shown below (changes highlighted in bold text):
<p:variable name="prefix" as="xs:string" select="'myapp-'"/> … <p:add-attribute> <p:with-option name="match" select="'/*'"/> <p:with-option name="attribute-name" select="concat($prefix, 'att1')"/> <p:with-option name="attribute-value" select="…some other computed value…"/> </p:add-attribute> |
Confirmed | August 29, 2023 | Andy Carver |
1st | Chapter 8, Built-in steps, Example 8.4 (page 185 in the print edition) | The second occurrence of <p:option> in Example 8.4 should be <p:with-option>, and the <p:with-option> element needs to be closed (changes highlighted in bold text):
<p:option name="parameter-to-pass-to-xslt"/> … <p:xslt> <p:with-input port="stylesheet" href="xslt-with-parameters.xsl"/> <p:with-option name="parameters" select="map { 'first-param' : $parameter-to-pass-to-xslt, 'second-param' : 12345 }"/> </p:xslt> |
Confirmed | July 5, 2023 | Andy Carver |
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="http://www.w3.org/ns/xproc" version="3.0"> <p:input port="source"/> <p:output port="result"/> <p:for-each> <!-- 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" attribute-value="{current-dateTime()}"/> <!-- 3 - Write the result to disk: --> <p:store href="{concat('/some/path/doc-', p:iteration-position(), '.xml')}"/> </p:for-each> <!-- 4 - Discard the documents, just report a count: --> <p:count/> </p:declare-step> |
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 The |
Confirmed | July 7, 2020 | Eirk Siegel |