The errata list is a list of errors and their corrections that were found after the product was released.
The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.
Version |
Location |
Description |
Submitted by |
Date submitted |
Printed |
Page Ch. 4
many pages |
The name of the car is "Touareg", not "Touraeg"
|
Anonymous |
Aug 27, 2009 |
ePub |
Page chapter 2 Section 5
top |
had to edit(remove) everything that referenced any kind of a link in the code so the page would let this go through
<?xml version="1.0"?>
<!-- svg-greeting.xsl -->
<xsl:stylesheet version="1.0"
<xsl:template match="/">
<svg:svg width="10cm" height="4cm">
<svg:g>
<svg:defs>
<svg:radialGradient id="MyGradient"
cx="4cm" cy="2cm" r="3cm" fx="4cm" fy="2cm">
<svg:stop offset="0%" style="stop-color:red"/>
<svg:stop offset="50%" style="stop-color:blue"/>
<svg:stop offset="100%" style="stop-color:red"/>
</svg:radialGradient>
</svg:defs>
<svg:rect style="fill:(#MyGradient); stroke:black"
x="1cm" y="1cm" width="8cm" height="2cm"/>
<svg:text x="5.05cm" y="2.25cm" text-anchor="middle"
style="font-family:Verdana; font-size:24;
font-weight:bold; fill:black">
<xsl:apply-templates select="greeting"/>
</svg:text>
<svg:text x="5cm" y="2.2cm" text-anchor="middle"
style="font-family:Verdana; font-size:24;
font-weight:bold; fill:white">
<xsl:apply-templates select="greeting"/>
</svg:text>
</svg:g>
</svg:svg>
</xsl:template>
<xsl:template match="greeting">
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
the result of the SVG created by the xsl, which does not work.
<?xml version="1.0" encoding="UTF-8"?>
<svg:svg xmlns:svg="" width="10cm" height="4cm">
<svg:g>
<svg:defs>
<svg:radialGradient id="MyGradient" cx="4cm" cy="2cm" r="3cm"
fx="4cm" fy="2cm">
<svg:stop offset="0%" style="stop-color:red"/>
<svg:stop offset="50%" style="stop-color:blue"/>
<svg:stop offset="100%" style="stop-color:red"/>
</svg:radialGradient>
</svg:defs>
<svg:rect style="fill:(#MyGradient); stroke:black" x="1cm"
y="1cm" width="8cm" height="2cm"/>
<svg:text x="5.05cm" y="2.25cm" text-anchor="middle"
style="font-family:Verdana; font-size:24; font-weight:bold; fill:black">
Hello, World!
</svg:text>
<svg:text x="5cm" y="2.2cm" text-anchor="middle"
style="font-family:Verdana; font-size:24; font-weight:bold; fill:white">
Hello, World!
</svg:text>
</svg:g>
</svg:svg>
Correct xsl code
<?xml version="1.0"?>
<!-- svg-greeting.xsl -->
<xsl:stylesheet version="1.0"
<xsl:template match="/">
<svg:svg width="10cm" height="4cm">
<svg:g>
<svg:defs>
<svg:radialGradient id="MyGradient">
<svg:stop offset="0%" style="stop-color:red"/>
<svg:stop offset="50%" style="stop-color:blue"/>
<svg:stop offset="100%" style="stop-color:red"/>
</svg:radialGradient>
</svg:defs>
<svg:rect style="fill:(#MyGradient); stroke:black"
x="1cm" y="1cm" width="8cm" height="2cm"/>
<svg:text x="5.05cm" y="2.25cm" text-anchor="middle"
style="font-family:Verdana; font-size:24;
font-weight:bold; fill:black">
<xsl:apply-templates select="greeting"/>
</svg:text>
<svg:text x="5cm" y="2.2cm" text-anchor="middle"
style="font-family:Verdana; font-size:24;
font-weight:bold; fill:white">
<xsl:apply-templates select="greeting"/>
</svg:text>
</svg:g>
</svg:svg>
</xsl:template>
<xsl:template match="greeting">
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
correct SVG code
<?xml version="1.0" encoding="UTF-8"?>
<svg:svg xmlns:svg="" width="10cm" height="4cm">
<svg:g>
<svg:defs>
<svg:radialGradient id="MyGradient">
<svg:stop offset="0%" style="stop-color:red"/>
<svg:stop offset="50%" style="stop-color:blue"/>
<svg:stop offset="100%" style="stop-color:red"/>
</svg:radialGradient>
</svg:defs>
<svg:rect style="fill:(#MyGradient); stroke:black" x="1cm"
y="1cm" width="8cm" height="2cm"/>
<svg:text x="5.05cm" y="2.25cm" text-anchor="middle"
style="font-family:Verdana; font-size:24; font-weight:bold; fill:black">
Hello, World!
</svg:text>
<svg:text x="5cm" y="2.2cm" text-anchor="middle"
style="font-family:Verdana; font-size:24; font-weight:bold; fill:white">
Hello, World!
</svg:text>
</svg:g>
</svg:svg>
i took this out of the radial gradient code
cx="4cm" cy="2cm" r="3cm" fx="4cm" fy="2cm"
I am a graphics design engineer. I work with SVG code everyday. Not surprised no one else found this after all these years.
|
Jack Gates |
Jun 16, 2023 |
PDF |
Page 1
PDF Sidebar Table of Contents, entries for Appendix A, Glossary, Index |
Unlike the EPUB and MOBI versions, the sidebar Table of Contents in tne PDF version does not expand the listing for Appendix A. The sidebar has only the main title, not the subtitles (like "[2.0] <xsl:analyze-string>"). This greatly increases the difficulty of using one of the most useful features of the book.
In contrast, Sidebar entries for Appendices B to G are expanded down to 1 or 2 sublevels, making it very easy to look for information in those Appendices.
It would also be very useful if the if the sidebar entries Glossary in the EPUB and MOBI were expanded to one sublevel (leading letter) as in the PDF and if the sidebar entries for Index were expanded in the same way for all three formats.
P.S. I set the page number to "1" because the sidebar has no page number and the errata report requires a page number
|
Ian E. Gorman |
Jan 14, 2013 |
|
1.3.1
Whole section |
I don't know the exact page as it's not shown in Safari Books Online
Its Chapter 1 Section 3 Part 1
Installing Xalan
I'm only learning this but correct me if I'm wrong...
Xalan-Java's website only says it covers version 1.0 of xsl not version 2
xml[dot]apache[dot]org/xalan-j/
"
Xalan-Java is an XSLT processor for transforming XML documents into HTML, text, or other XML document types. It implements XSL Transformations (XSLT) Version 1.0 and XML Path Language (XPath) Version 1.0 and can be used from the command line, in an applet or a servlet, or as a module in other program.
"
|
James Duffy |
Oct 19, 2018 |
Printed |
Page 7
before last paragraph |
Should end with apostrophe instead of double quote:
<book title="XSLT, Second Edition" publisher='O'Reilly'/>
|
Gerhard Mayer |
Dec 17, 2011 |
Printed |
Page 7
last code example |
First line of last code listing should be (forward slash should be right before closing > sign:
<book title="XSLT, Second Edition" publisher="O'Reilly"/>
|
Anonymous |
Jul 14, 2012 |
Other Digital Version |
11
Next to last paragraph |
In this example, ... the xmlns:addr attribute associates the paintings prefix with another namespace.
"paintings" should be "addr".
|
Lithis |
Oct 18, 2010 |
Printed |
Page 11
1st sentence in the last but one paragraph |
The prefix should be addr, not paintings:
... and the xmlns:addr attribute associates the addr prefix with another ...
|
Gerhard Mayer |
Dec 17, 2011 |
Printed |
Page 26
2/3 down |
The Saxon command for transformation is, best I can tell, using the XSLT 2 transformer. There are two issues that I found confusing. First, it appears that the -o option requires a ':' prior to the file name. Second, a warning is given that an XSLT 1 stylesheet is being processed. Here is what I see when running the command:
vangogh% java -classpath ~/Documents/Saxon/saxonhe9-3-0-2j/saxon9he.jar net.sf.saxon.Transform -o greeting.html greeting.xml greeting.xsl
Command line option -o requires a value
vangogh% java -classpath ~/Documents/Saxon/saxonhe9-3-0-2j/saxon9he.jar net.sf.saxon.Transform -o:greeting.html greeting.xml greeting.xsl
Warning: at xsl:stylesheet on line 4 column 54 of greeting.xsl:
Running an XSLT 1 stylesheet with an XSLT 2 processor
BTW I am enjoying the book.
--Gary
|
Gary Wernsing |
Dec 23, 2010 |
Printed |
Page 26
command line for Saxon call |
saxonica instead of saxon in the schema-aware version of Saxon:
java com.saxonica.Transform
|
Gerhard Mayer |
Dec 17, 2011 |
Printed |
Page 32
Section "Built-in template rule for namespace nodes |
Saxon and AltovaXML complain that the node test namespace() is not defined (not tested with other XSLT processors).
|
Anonymous |
Aug 27, 2009 |
Printed |
Page 32
2nd code fragment |
"As an example, given this document:
<?xml version="1.0"?>
<x>
<y>
<z/>
</y>
</z>
"
The final "</z>" should be "</x>"
|
Anonymous |
Jun 02, 2010 |
Printed |
Page 34
stylesheet commencing 8th printed (ie non-blank) line |
'greeting' on the 9th line of the stylesheet should read 'greetings'
Code as printed does not output any results in XML Notepad. The modification produces the expected result.
|
Anonymous |
Apr 03, 2011 |
Printed |
Page 40
command line for schema-aware version of Saxon |
No dot should be between java and com:
java com.saxonica.Transform
|
Gerhard Mayer |
Dec 17, 2011 |
Other Digital Version |
47
xml document |
I've bought the book and downloaded the code. Thanks.
The document refers to a stylesheet which didn't come with the downloads (sonnet.xsl). This obviously screws up viwing the document online.
Maybe later the stylesheet will be necessary, don't know yet.
More important, I object to:
No confirmed errata was found for this product.
erratum was/errata were
Most important:
Act of Union of England and Scotland 1707 nearly a century after
Shakespeare's death.
He was English not British.
|
A Correspondent |
Jul 13, 2009 |
Printed |
Page 47
Document listing (continues onto page 48) |
On page 48 para 2 and again on page 60 para 4 (or 5) the text refers to two processing instructions in the document listed page 47. The second is named "cocoon-process", but I'll be darned if I can find it anywhere in the listing that starts on page 47.
|
levinjb |
Jul 22, 2009 |
Printed |
Page 48
first paragraph... |
the section references 'cocoon-process' and 'xsl:value-of', which are no where to be found in the example spanning p.47-8. the result is that the whole paragraph makes no sense.
|
Anonymous |
Feb 22, 2011 |
Printed |
Page 48
second paragraph... |
the section references 'cocoon-process' and 'xsl:value-of', which are no where to be found in the example spanning p.47-8. the result is that the paragraph is confusing.
|
Anonymous |
Feb 22, 2011 |
Printed |
Page 95
1st paragraph |
Instead of "The fourth test, '3' cast as xs:integer, fails", I think it should read "The fourth test, 'e' cast as xs:integer, fails".
|
Sean McCoy |
Apr 11, 2011 |
Printed |
Page 137
Section "For an example that needs that..." |
"contol" should be "control".
|
Wilson Au |
Oct 25, 2010 |
Printed |
Page 140
last paragraph |
"delievered" should read "delivered"
|
Anonymous |
Aug 26, 2009 |
Printed |
Page 149
First line after the heading "The <xsl:for-each> Element |
"criteria" should read "criterion"
|
Anonymous |
Aug 26, 2009 |
Printed |
Page 152
code at the bottom |
"calcuateArea" should read "calculateArea"
|
Anonymous |
Aug 28, 2009 |
Printed |
Page 152
In the section "Parameters" |
"You can pass templates" should read "You can pass parameters".
|
Anonymous |
Aug 28, 2009 |
Printed |
Page 171
Paragraph after the second bullet |
The word "part" is missing in "on the last of the string".
|
Anonymous |
Aug 26, 2009 |
PDF |
Page 186
in sample code <!-- id2.xsl --> |
The sample code as printed, and the identical code downloaded from the website, does not work.
The crucial part of the code is presented as:
<xsl:for-each select="/parts-list/component [partref/@refid=current()/@part-id]">
Since the form of the "partref/@refid" in the sample xml looks like this:
<partref refid="P81952-26-PK P86679-52-SP P81472-68-FD P88107-39-GT"/>
and the "part-id" looks like this:
<part part-id="P86994-25-RC">
the two will of course never be equal, so the code gives no useful output. The code can be fixed using something like:
<xsl:for-each select="/parts-list/component [contains(partref/@refid,current()/@part-id)]">
|
Philip Spaelti |
Nov 09, 2011 |
Printed |
Page 192
second code example |
the code
<a name="{@part-id}"/>
should be
<a name="{@component-id}"/>
|
Anonymous |
Aug 28, 2009 |
Printed |
Page 291
Bottom of page |
Incomplete errata. Author writes :
"For some reason, the words"
which is an incomplete sentence/thought!
|
Marvin D. Hernandez |
Jan 03, 2010 |
Printed |
Page 358
Middle of the page |
Incomplete errata. Author writes :
"The sample stylesheet here is out of sync with the actual example. The stylesheet in the book will work, but the sample posted on the Web site exits gracefully if the dotnet:getPhotoListing() function is not available. The example should be replaced with the following: <?xml version="
but doesn't complete the replacement example.
|
Marvin D. Hernandez |
Jan 03, 2010 |
Printed |
Page 401
paragraph under <xsl:copy> heading |
At the end of the paragraph directly under the <xsl:copy> heading, "nfodes" should be "nodes".
|
Anonymous |
Apr 15, 2010 |
|
405
1st paragraph after stylesheet |
Example stylesheet copy3.xsl creates new document element <brands>, but example output shows document element <report>. The on-line example is correct.
|
Peter Collett |
Mar 17, 2010 |
Printed |
Page 410
Top of page |
Incomplete errata. Author writes :
"Get rid of the extraneous"
The author probably wanted something along the lines of :
?Get rid of the extraneous f from
f <xsl:decimal-format name="f1"
on line 6.?
|
Marvin D. Hernandez |
Jan 03, 2010 |
Printed |
Page 410
6th code line |
There appears to be a stray "f" at the beginning of the sixth line of code on page 410.
|
Anonymous |
Jun 24, 2010 |
Printed |
Page 440
<xsl:import> - 1st paragraph |
Second sentence should read "...have a lower priority than those in the importing stylesheet."
|
Peter Collett |
Apr 05, 2011 |
Printed |
Page 443
1st text paragraph |
3rd sentence should start "Only the importing stylesheet..."
|
Peter Collett |
Apr 05, 2011 |
PDF |
Page 462
2nd paragraph from bottom |
The text reads: <quote>In our example here, the different priorities are set by the default XSLT precedence rules. A more specific rule always has precedence over a less specific one, so the highest priority rule for a <code> element inside an <h1> element is the match="h1/code" template.</quote>
The general statement "A more specific rule always has precedence over a less specific one" appears to be incorrect. The XSLT 1.0 Recommendation default priority definition is here:
http://www.w3.org/TR/1999/REC-xslt-19991116#dt-default-priority
For XSLT 2.0, the definition is here:
http://www.w3.org/TR/2007/REC-xslt20-20070123/#dt-default-priority
I would rather have placed this entry under an "omission" category than an error category. I think your readers would benefit from more detail on the "match" templates in general, especially pointing out the differences between the patterns in a "match" attribute and those in a "select" (context being critical in the latter, but not so much in the former). And a thorough discussion of priority and default priority would be extremely helpful. I just had a painful session trying to find out why a node that matched both "TableHeading/TableRow/TableCell" and "TableRow/TableCell" always processed the latter template. Answer: even though the first one is more specific, the two templates have the same default priority, and the stylesheet apparently is allowed to resolve this by choosing the one that appears last in the stylesheet.
|
Victor Mote |
Sep 09, 2010 |
Printed |
Page 660-661
Description of floor() function contradicts the "output" description for the function |
Pages 660 & 661 of the book, in the description of the floor() function.
The initial description of the function says:
"Returns the largest integer that is not greater than the argument."
However, this is directly contradicted on the following page in the "output" section of the function description:
"The largest integer that is not less than the argument."
|
Anonymous |
Jun 29, 2017 |
Printed |
Page 824
substring-after() Output definition |
Output definition states 'If the second string is a zero-length string, substring-after() returns a zero-length string.' This is incorrect - the entire first string is returned.
|
Peter Collett |
Mar 09, 2011 |
Printed |
Page 898
XSLT sample in the middle of the page |
Incomplete errata. Author writes :
"In the example in the middle of the page, I [this is submitted by the author] used the advanced coding (\p{{Nd}}{{3}}), but I don't explain the \p modifier or the Nd character group until later in the appendix. Please take this out and use the simpler markup ([0-9]{{3}}) instead. So instead of: <xsl:analyze-string select="
but fails to complete the correction.
|
Marvin D. Hernandez |
Jan 03, 2010 |
Printed |
Page 922
Middle of the page |
Incomplete errata. Author writes :
"The ordinal presentation modifier ("
but fails to complete the sentence/thought.
|
Marvin D. Hernandez |
Jan 03, 2010 |