(Four stars to me means "very good".)
This book is a pretty good primer on XML. I bought it to learn about XML Schemas (XSDs) and XML Transformations (XSLTs). I read about two-thirds of the book thoroughly, and haven't read any other XML books closely yet.
The author's tone and pace are great. The back of the book says that the author is an experienced trainer, and it shows in the book. I have seen many a technical book that talks down to its audience, and this isn't one of them. If you're actually learning the subject and not just browsing, you won't be skimming through pages of fluff. The book doesn't assume that you've read three other books covering the subject already, or assume that you have a Master's in Comp Sci. (Personally I hate it when technical books use words like "orthogonal" or "reify".)
The book's coverage is remarkably broad. The author doesn't seem to have any bias towards any particular language or OS, and presents his examples in every language you're likely to want to use. There are primer-style review questions and exercises at the end of each chapter, and they are actually useful.
One of the ways that this book stands out is that the author talks about up-to-the-minute technologies including data binding and web services, and technologies that are not yet mainstream, such as XLink and XForms. Considering that most technical books are out of date by the time they are published, this is a remarkable achievement, especially for a book of about 1,000 pages.
A couple shortcomings -- the example files aren't available online as of this writing, and I wish that the XSL Transformations chapter more explicitly described how the processor processes a template in step-by-step fashion. It took me a couple readings to get the idea, but I bet that happens with every book that covers XSL Transformations.