Decent tutorials, very poor explanations, editing, and reference
To be fair, I am not a fan of the Thompson Course Technology books in general. But this is the first one that actually drove me to write a negative review to spare some innocent XML programmer-to-be the confusion this book will likely cause.
Our local community college unfortunately requires this text (a fair percentage of the classes seem to use Course Technology books because of the pre-fab quizzes, Powerpoints, and online supplements available to the instructors who can't be bothered to make their own).
The good: The Chapters are called "Tutorials" and in general, if you can read and copy the tutorials line for line, you will be able to get them to validate. However, you probably won't understand why in many cases.
The ugly: Like most of the Course Technology textbooks I've seen, there are significant typos and the explanations are very poor and awkward. There is little or no rigor in defining terms, the author often uses a tangential example as an adequate explanation for the entire concept.
Many explanations are as clear as mud. Case in point p. 199 (which is only partially understandable to me because I've taken a few computer classes (including C++ object oriented programming) and the concept of scope is familiar to me, even if the word is never mentioned here):
"In XML Schema, any element or attribute that is declared globally has to be entered as a qualified name in the instance document. The reason is that global elements and attributes are added to the target namespace, while local objects are not. Local objects are interpreted based on the namespace affiliation of the object in which they're nested. Because global objects are attached to the namespace, they have to be qualified in the instance document with a namespace prefix. The target namespace applies the document validation through the qualified elements in the instance document using them as the starting points for the validation process. You can't go down the hierarchy and validate only the local elements and attributes."
And that was a relatively clear passage. Even if you understand the concept, you are unlikely to get the syntax exactly correct. This book has singlehandedly caused me to consider a campaign to our department dean to stop using Course Technology books, and search for a decent textbook substitute. This book is of little use in class, and will be even less useful as a handy reference.