If you're looking for an introduction to XML, this book is the right place to start. This book is my fourth attempt at learning the XML basics, and it's just right. I'd give it 6 stars if I could.
The most striking thing about it is how well-organized it is. Finally, here is a book with virtually no typos, a CD of sample programs where all the programs work(!!!), and a completely clear labeling of which file on the CD is being used for each sample listing in the book. The writing is very clear, and all the examples are explained very well. And the book is only 362 pages, so you never have the feeling that it will take forever to go through it all.
The content is also very well organized, where each chapter builds on the preceding chapters, and the author does not discuss anything if the context has not already been established. The XML basics are all presented, including entities, DTDs, Data Binding, the DOM, and XSL. (And maybe a little more - the example in Chapter 9 of using the DOM to access XML entities in a DTD starts to get more advanced.)
To make full use of this book, you need to know some HTML. Knowing some JavaScript is also helpful, but not absolutely required. On the other hand, by the time you're ready to tackle XML, you should already know the HTML basics.
The book does not go into more advanced topics like SAX or SOAP, but that is OK since this is a beginner's book. Reading this book (and playing with the sample code) should give you the appropriate background for a more advanced book.
A warning: this is a Microsoft Press book, and all the samples are displayed in the Internet Explorer 5.x browser. If you are allergic to IE, then you should find another book, but you would be missing out on a lot.