Errata

XML in a Nutshell

Errata for XML in a Nutshell, Third Edition

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 16
Example 2-3 -> 2nd Definition Block,the "Turing Machine" definition

"to any any other finite state...."

NOW READS:
"to any other finite state...."

Anonymous    Feb 01, 2005
Printed
Page 29
2nd bulleted point

"How many of instances..."
should read:
"How many instances..."

Anonymous    Jul 01, 2007
Printed
Page 29
2nd bulleted point

"How many of instances..."
should read:
"How many instances..."

Anonymous    Aug 01, 2007
Printed
Page 30
The caption for Example 3-1;

"A DTD for the person"

NOW READS:
"A DTD for the person element"

Anonymous    Feb 01, 2005
Printed
Page 38
Section 3.2.3

Madonna's surname is Ciccone (two c's, one n), not Ciconne, as quoted in the example.

Anonymous   
Printed
Page 40
last code on page

<!ELEMENT name (last_name
| (first_name, ( ( middle_name+, last_name) | (last_name?) )
) >

missing a closing ")"
should be:

<!ELEMENT name (last_name
| (first_name, ( (middle_name+, last_name) | (last_name?) ))
) >

Anonymous    Jul 01, 2007
Printed
Page 40
last code on page

<!ELEMENT name (last_name
| (first_name, ( ( middle_name+, last_name) | (last_name?) )
) >

missing a closing ")"
should be:

<!ELEMENT name (last_name
| (first_name, ( (middle_name+, last_name) | (last_name?) ))
) >

Anonymous    Aug 01, 2007
Printed
Page 46
2nd paragraph of IDREF section

"Every project has a project_id ID type attribute"
should be:
"Every project has an ID type attribute named id"

also, towards the bottom of the page:

<!ATTLIST project project_id ID #REQUIRED>
should be:
<!ATTLIST project id ID #REQUIRED>

Anonymous    Jul 01, 2007
Printed
Page 46
2nd paragraph of IDREF section

"Every project has a project_id ID type attribute"
should be:
"Every project has an ID type attribute named id"

also, towards the bottom of the page:

<!ATTLIST project project_id ID #REQUIRED>
should be:
<!ATTLIST project id ID #REQUIRED>

Anonymous    Aug 01, 2007
Printed
Page 47
End of IDREFS section

<!ATTLIST employee social_security_number ID #REQUIRED
fsteam IDREFS #REQUIRED>
<!ATTLIST project project_id ID #REQUIRED>

to

<!ATTLIST employee social_security_number ID #REQUIRED>
<!ATTLIST project project_id ID #REQUIRED
team IDREFS #REQUIRED>

Anonymous    Jul 01, 2007
Printed
Page 47
End of IDREFS section

<!ATTLIST employee social_security_number ID #REQUIRED
fsteam IDREFS #REQUIRED>
<!ATTLIST project project_id ID #REQUIRED>

to

<!ATTLIST employee social_security_number ID #REQUIRED>
<!ATTLIST project project_id ID #REQUIRED
team IDREFS #REQUIRED>

Anonymous    Aug 01, 2007
Printed
Page 63
The first paragraph of "Namespace Syntax" is really imprecise,

or perhaps overly precise. Replace it with the following:

Namespaces distinguish between elements with different meanings but
the same name by assigning each element a URI. Generally, all the
elements from one XML application are assigned to one URI, and all the
elements from a different XML application are assigned to a different
URI. These URIs are called namespace names. Elements with the same name
but different URIs are different kinds of elements. Elements with the
same name and the same URI are the same kind of element. Most of the
time a single XML application has a single namespace URI for all its
elements, though a few applications use multiple namespaces to subdivide
different parts of the application. For instance, XSL uses different
namespaces for XSL Transformations (XSLT) and XSL Formatting Objects
(XSL-FO).

Anonymous    Jul 01, 2007
Printed
Page 63
The first paragraph of "Namespace Syntax" is really imprecise,

or perhaps overly precise. Replace it with the following:

Namespaces distinguish between elements with different meanings but
the same name by assigning each element a URI. Generally, all the
elements from one XML application are assigned to one URI, and all the
elements from a different XML application are assigned to a different
URI. These URIs are called namespace names. Elements with the same name
but different URIs are different kinds of elements. Elements with the
same name and the same URI are the same kind of element. Most of the
time a single XML application has a single namespace URI for all its
elements, though a few applications use multiple namespaces to subdivide
different parts of the application. For instance, XSL uses different
namespaces for XSL Transformations (XSLT) and XSL Formatting Objects
(XSL-FO).

Anonymous    Aug 01, 2007
Printed
Page 65
Bottom of page (Example 4-3)

Example 4-3 is titled "A document containing both SVG and XLinks" when it actually contains both rdf and
dc elements.

Note from the Author or Editor:
In the caption Of example 4-3 change ""A document containing both SVG and XLinks"" to ""A document containing both RDF and Dublin Core elements"

Anonymous   
Printed
Page 72
Section 5.4,1st paragraph

Section 5.4 starts with -

An XML parser is required to handle the UTF-16 and UTF-8 encodings or Unicode (about which more follows).

Should be 'of', not 'or',

An XML parser is required to handle the UTF-16 and UTF-8 encodings of Unicode (about which more follows).

Note from the Author or Editor:
This is actually on p. 74 in my copy. "An XML parser is required to handle the UTF-16 and UTF-8 encodings or Unicode" should read
"An XML parser is required to handle the UTF-16 and UTF-8 encodings of Unicode".

Anonymous   
Printed
Page 77
ISO is not an acronym. Therefore

"The International Standards Organization (ISO) has standardized fourteen of these character sets as ISO standard 8859. "

NOW READS:
"ISO, the International Standards Organization, has standardized fourteen of these character sets as ISO standard 8859. "

Anonymous    Feb 01, 2005
Printed
Page 95
Subsection titled "The body of the work in the 'body' element"

The last sentence reads:

Each div1 element has a header child...

'header' should be 'head' according to Example 6-1.

Anonymous    Jul 01, 2007
Printed
Page 95
Subsection titled "The body of the work in the 'body' element"

The last sentence reads:

Each div1 element has a header child...

'header' should be 'head' according to Example 6-1.

Anonymous    Aug 01, 2007
149
3rd paragraph

In the 3rd paragraph it says:

"The <p> and </p> tags were copied from the input to the output."

But it should instead say:

The <p> and </p> tags were copied from the stylesheet to the output.

Note from the Author or Editor:
Good catch! Please make the change as suggested in the erratum.

Dave  Apr 20, 2013 
Printed
Page 163
in the code listing

The name of the attribute of the homepage-element on page 163 is 'xlink:href'
but in the picture on page 164 it is 'xref:href'.

Note from the Author or Editor:
p. 164, Figure 9-1:

* text/xsl should be application/xml
* xref:href="http://www.turinng.org.uk" should be xlink:href="http://www.turing.org.uk"

Anonymous   
Printed
Page 164
Figure 9-1

* text/xsl should be application/xml
* xref:href="http://www.turing.org.uk" should be
xlink:href="http://www.turing.org.uk"

Anonymous    Jul 01, 2007
Printed
Page 164
Figure 9-1

* text/xsl should be application/xml
* xref:href="http://www.turing.org.uk" should be
xlink:href="http://www.turing.org.uk"

Anonymous    Aug 01, 2007
Printed
Page 193
In the last paragraph on the page

"purchase_details.html"
should be:
"purchase_details.txt"

Anonymous    Jul 01, 2007
Printed
Page 193
In the last paragraph on the page

"purchase_details.html"
should be:
"purchase_details.txt"

Anonymous    Aug 01, 2007
Printed
Page 266
In Example 16-4, remove the extra http:// from the namespace

URIs for xmlns:xsi and xmlns:xsd. That is, change

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://http://www.w3.org/2001/XMLSchema">

to

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">

Anonymous    Jul 01, 2007
Printed
Page 266
In Example 16-5, change xmlns:env to xmlns:SOAP-ENV and add a

namespace declaration for the xsd and xsi prefixes. That is, change

<SOAP-ENV:Envelope
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">

to

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">

Anonymous    Jul 01, 2007
Printed
Page 266
In Example 16-4, remove the extra http:// from the namespace

URIs for xmlns:xsi and xmlns:xsd. That is, change

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://http://www.w3.org/2001/XMLSchema">

to

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">

Anonymous    Aug 01, 2007
Printed
Page 266
In Example 16-5, change xmlns:env to xmlns:SOAP-ENV and add a

namespace declaration for the xsd and xsi prefixes. That is, change

<SOAP-ENV:Envelope
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">

to

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">

Anonymous    Aug 01, 2007
Printed
Page 267
Top of page

The bottom of page 266 ends:

"SOAP can be used over a varity of other protocols, provided that all the senders and receivers
understand both the protocols, provided that all the senders an receivers understand both the protocol
being used and as much of the SOAP messages as they need to process the request." (PERIOD)

At the top of page 267 the text starts:

"exsiting objects or accepts XML Schemas describing formats and then generate the markup automatically."

There would apear to be missing text between the bottom of page 266 and the top of page 267.

Anonymous   
Printed
Page 281
after 1st paragraph

In the sample command line

% java dom.Writer -V -S addressdoc.xml

both option letters must be given in lower case to enable schema validation:

% java dom.Writer -v -s addressdoc.xml

The given uppercase option letters DISABLE the schema validation, which is exactly what is not wanted here.

Anonymous    Jul 01, 2007
Printed
Page 281
after 1st paragraph

In the sample command line

% java dom.Writer -V -S addressdoc.xml

both option letters must be given in lower case to enable schema validation:

% java dom.Writer -v -s addressdoc.xml

The given uppercase option letters DISABLE the schema validation, which is exactly what is not wanted here.

Anonymous    Aug 01, 2007
Printed
Page 282
In Example 17-4,

xmlns:xsi="http://www.w3.org/2001/XMLSchema"

NOW READS:
xmlns:xs="http://www.w3.org/2001/XMLSchema"

Anonymous    Feb 01, 2005
Printed
Page 286
The first code fragment on the page should declare the xs

prefix, not the xsi prefix. That is change

<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://namespaces.oreilly.com/xmlnut/address">

to

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://namespaces.oreilly.com/xmlnut/address">

Anonymous    Jul 01, 2007
Printed
Page 286
The first code fragment on the page should declare the xs

prefix, not the xsi prefix. That is change

<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://namespaces.oreilly.com/xmlnut/address">

to

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://namespaces.oreilly.com/xmlnut/address">

Anonymous    Aug 01, 2007
Printed
Page 287
The second code fragment on the page should declare the xs

prefix, not the xsi prefix. That is change

<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://namespaces.oreilly.com/xmlnut/address"
xmlns:addr="http://namespaces.oreilly.com/xmlnut/address">

to

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://namespaces.oreilly.com/xmlnut/address"
xmlns:addr="http://namespaces.oreilly.com/xmlnut/address">

Anonymous    Jul 01, 2007
Printed
Page 287
The second code fragment on the page should declare the xs

prefix, not the xsi prefix. That is change

<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://namespaces.oreilly.com/xmlnut/address"
xmlns:addr="http://namespaces.oreilly.com/xmlnut/address">

to

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://namespaces.oreilly.com/xmlnut/address"
xmlns:addr="http://namespaces.oreilly.com/xmlnut/address">

Anonymous    Aug 01, 2007
Printed
Page 289
Example 17-7 should declare the xs prefix, not the xsi prefix.

That is change

<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://namespaces.oreilly.com/xmlnut/address"
xmlns:addr="http://namespaces.oreilly.com/xmlnut/address"
elementFormDefault="qualified">

to

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://namespaces.oreilly.com/xmlnut/address"
xmlns:addr="http://namespaces.oreilly.com/xmlnut/address"
elementFormDefault="qualified">

Anonymous    Jul 01, 2007
Printed
Page 289
Example 17-7 should declare the xs prefix, not the xsi prefix.

That is change

<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://namespaces.oreilly.com/xmlnut/address"
xmlns:addr="http://namespaces.oreilly.com/xmlnut/address"
elementFormDefault="qualified">

to

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://namespaces.oreilly.com/xmlnut/address"
xmlns:addr="http://namespaces.oreilly.com/xmlnut/address"
elementFormDefault="qualified">

Anonymous    Aug 01, 2007
Printed
Page 297
Example 17-9 should declare the xs prefix, not the xsi prefix.

That is change

<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema">
to
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

Anonymous    Jul 01, 2007
Printed
Page 297
Example 17-9 should declare the xs prefix, not the xsi prefix.

That is change

<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema">
to
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

Anonymous    Aug 01, 2007
Printed
Page 301
Example 17-12 should declare the xs prefix, not the xsi prefix.

That is change the first line from

<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema"
to
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

Anonymous    Jul 01, 2007
Printed
Page 301
Example 17-12 should declare the xs prefix, not the xsi prefix.

That is change the first line from

<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema"
to
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

Anonymous    Aug 01, 2007
Printed
Page 302
Both code fragments on this page should declare the xs prefix,

not the xsi prefix. That is change the first lines from

<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema"
to
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

Anonymous    Jul 01, 2007
Printed
Page 302
Both code fragments on this page should declare the xs prefix,

not the xsi prefix. That is change the first lines from

<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema"
to
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

Anonymous    Aug 01, 2007
Printed
Page 420
The description of the fixed attribute was omitted.

After final, add the following:

fixed, optional
If the fixed attribute is present, then the only legal value for
this element's content is the value of the fixed attribute. Only
elements with simple types may be fixed.

Anonymous   
Printed
Page 458
Change the description of the // abbreviated step to the following

All descendants of the context node and the context node itself unless
// occurs at the beginning of the expression, in which case this refers
to all descendants of the root node and the root node itself. Never used
in isolation. Must be followed by a location step.

Anonymous    Jul 01, 2007
Printed
Page 458
Change the description of the // abbreviated step to the following

All descendants of the context node and the context node itself unless
// occurs at the beginning of the expression, in which case this refers
to all descendants of the root node and the root node itself. Never used
in isolation. Must be followed by a location step.

Anonymous    Aug 01, 2007
Printed
Page 622
in the 5th, 6th, 7th, and 8th row set of characters

Under the hex code 620 there is a 'Y' character. This is not an arabic character. It should be no charater at all (or just n/a).
Under the hex code 628 there is a 'Y' character. It should be the arabic charater &#1576;
Under the hex code 630 there is a 'Y' character. It should be the arabic charater &#1584;
Under the hex code 638 there is a 'Y' character. It should be the arabic charater &#1592;

Thanks!

Note from the Author or Editor:
As described above. This appears to be a copy and paste error from an earlier table. p. 622: Character 0x620 is wrong. It should be n/a
Character 0x628 is wrong. It should be &#1576;
Character 0x630 is wrong. It should be &#1584;
Character 0x638 is wrong. It should be

Anonymous  Jun 28, 2008