Errata

XSLT Cookbook

Errata for XSLT Cookbook

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
Printed
Page 4
1st para of last XSL code example

<xsl:template ="substring-before-last">

NOW READS:
<xsl:template name="substring-before-last">

Anonymous    Dec 01, 2003
Printed
Page 6

line 3: 'recuse' NOW READS 'recurse'

line 17: 'through' NOW READS 'throw'

line 24: 'occurances' NOW READS 'occurences'

Anonymous    Dec 01, 2003
Printed
Page 9
in comment

IN the comment starting <!-- Swap the recursive application ...
the "if" HAS BEEN CHANGED to "of"

Anonymous    Dec 01, 2003
Printed
Page 19
1st para below example 1.7, in the first sentence of the para.

'virutally' HAS BEEN CHANGED to 'virtually'

Anonymous    Dec 01, 2003
Printed
Page 20
in comment

The comment <!-- Handle the part that comes befor the current...

NOW READS:
<!-- Handle the part that comes before the current...

Anonymous    Dec 01, 2003
Printed
Page 27
halfway down in solution

'The top-level element xsl:decimal-format is establishes ...'

NOW READS:
'The top-level element xsl:decimal-format establishes ...'

Anonymous    Dec 01, 2003
Printed
Page 27
1st paragraph

translate($input,"
&xd", "")

should be

translate($input,"
", "")

Anonymous   
Printed
Page 30
top of page in code

The xsl:variable numCols iwass set to 4 in example 2-3.

That line of code NOW READS:
<xsl:variable name="numCols" select="3"/>

Anonymous    Dec 01, 2003
Printed
Page 36
last paragraph above Discussion heading

... then chopping of the last character

NOW READS
... then chopping off the last character

Anonymous    Dec 01, 2003
Printed
Page 39
section 2.3 solution

Terminating </xsl:stylesheet> HAS BEEN ADDED.

Anonymous    Dec 01, 2003
Printed
Page 43
in code for math:abs

Spurious '"' </xsl:choose> HAS BEEN DELETED.

Anonymous    Dec 01, 2003
Printed
Page 95
IN PRINT: 1st paragraph

"nineth"

NOW READS:
"ninth"

Anonymous    Dec 01, 2003
Printed
Page 120
Example 4-13

Incorrect XSLT, spelling error in xsl tag.
<xsl:varaible>

NOW READS:
<xsl:variable>

Anonymous    Mar 01, 2004
Printed
Page 122
IN PRINT: throughout

"visa versa"

NOW READS:
"vice versa"

Anonymous    Dec 01, 2003
Printed
Page 159
fifth line from bottom

select="$row/*[local-name(.)=current()/@elem]"mode="csv:map-value"/>

NOW READS:
select="$row/*[local-name(.)=current()/@elem]" mode="csv:map-value"/>

Anonymous    Aug 01, 2004
Printed
Page 167
1 line

... it is not to0 ...

NOW READS:
... it is not too ...

Anonymous    Mar 01, 2004
Printed
Page 207
last sentence before listing (does not need to be changed for reprint but may be helpful for readers)

There is a work-around that at least eliminates the need of matching the string against a sub-pattern again:

<xsl:analyze-string regex="(regex1)|(regex2)|...|(regexn)">
<xsl:matching-substring>
<xsl:choose>
<xsl:when test=". eq regex-group(1)">MATCHED regex1</xsl:when>
<xsl:when test=". eq regex-group(2)">MATCHED regex2</xsl:when>
<xsl:otherwise>IMPOSSIBLE</xsl:otherwise>
</xsl:choose>
</xsl:matching-substring>
</xsl:analyze-string>

Anonymous   
Printed
Page 238
8th line

To test if node-set1 is a subset of node-set2:

<xsl:if test="count($node-set1|node-set2)=count($node-set1)">

To test if node-set1 is a proper subset of node-set2:

<xsl:if test="count($node-set1|node-set2)=count($node-set1)
and count($node-set1) > count($node-set2)">

NOW READS:
To test if node-set2 is a subset of node-set1:

<xsl:if test="count($node-set1|node-set2)=count($node-set1)">

To test if node-set2 is a proper subset of node-set1:

<xsl:if test="count($node-set1|node-set2)=count($node-set1)
and count($node-set1) > count($node-set2)">

Anonymous    Dec 01, 2003
Printed
Page 312-314
various, throughout

"appriasal"

NOW READS:
"appraisal"

Anonymous    Sep 01, 2005
Printed
Page 466
first part of example code

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-Xmicrosoft-com:office:spreadsheet"
exclude-result-prefixes="o x ss">

<xsl:exclude-result-prefixes >

<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

NOW READS:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">

<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

Anonymous    Aug 01, 2004
Printed
Page 523
Second section "Java Extension Element"

xmlns:MyExt="xalan://com.AcmeX.MyExtensionElement">

NOW READS:
xmlns:MyExt="xalan://com.AcmeX.MyExtensionElement"

AND

<xalan:script lang="javasclass"

NOW READS:
<xalan:script lang="javaclass"

Anonymous    Sep 01, 2005
Printed
Page 564
example middle of the page

my $source_doc = $parser->parse_file( $source_file );

NOW READS:
my $source_doc = $parser->parse_file( $file );

Anonymous    Mar 01, 2004
Printed
Page 619
middle of the page in example code -

<xsl:call-template name="generic:aggregation">

NOW READS:
<xsl:call-template name="generic:reverse-aggregation">

Anonymous    Dec 01, 2003