Introduction
To paraphrase a well-know aphorism, Don't judge the difficulty of a book by the numerous abbreviations and acronyms in the title. Sas Jacobs� book ''Beginning XML with DOM and AJAX: From Novice to Professional'' published by Apress is a wonderfully succinct introduction to the world of Web development, which today means being able to manipulate XML in any of its various forms. The book might more accurately be titled ''Beginners Guide to Manipulating XML Documents for Web Development'' or simply ''Working with the XML-based Web''. This book is certainly not as cryptic or abbreviation-laden as the title implies. The text from beginning to end is a quick tour of the many tools and skills needed to manipulate XML content.
From the Ground Up
Since XML is so ubiquitous, it makes great sense to start there with some chapters explaining this underlying technology. The first three chapters are on XML, XML recommendations, and XML vocabularies. In these three chapters, the author covers the foundation of XML with just enough information to get you started without feeling overwhelmed. In fact, that�s the feeling I get from the entire book � informed but not overwhelmed. In the third chapter, the relevant XML vocabularies are summarized with examples, from XHTML to RSS and Web services. But this is only the beginning.
From XML to Web in Ten Steps
After the basic chapters on XML, the methods of manipulating data stored as XML are covered in turn. Here the author broadens our horizon, and discusses CSS, XSLT, JavaScript, AJAX, and Flash with enough explanation to give you the confidence to use them in your own project. The chapters cover a lot of ground quickly. These are the most popular and powerful technologies today, so including these chapters and organizing them this way make eminent sense. Part of the title is accurately fulfilled in the pages of this short book � Beginning � it is a great starter book for those afraid of approaching the ever changing new technologies that seem to be rolling out of the Web frontier faster than the Internet startups can make a mashup. But the subtitle, From Novice to Professional, may be a bit ambitious. It will definitely take you from novice to the next level. Again, the tag line, "everything you need to know" is too inclusive and a bit misleading, but it is definitely a great introduction to all the ways of working with XML, from scripting to style sheets to AJAX. Chapter 4 looks at client-side scripting and XML support in various Web browsers. Chapter 5 covers cascading style-sheets (CSS), and Chapter 6 races through Extensible Stylesheet Language Transforms (XSLT). Chapter 7 builds on that material to explain how to accomplish more powerful transforms of XML content using XSLT and JavaScript.
This book is simple and digestible � it gets you started. It does not set a great deal of big-picture-context, but it gets you into what may be new territory for many of us. It is quick and painless if a bit over-simplified. Where else can you read about style sheets and transforms (that are used for more than just appearances), dynamic XML scripting, graphics and grids, and browser-specific tips all in one book? What I learned most from this book was that these technologies often go beyond what they are originally intended for, but that�s okay. The Web is a place where innovation is alive and well. Chapters 8 and 9 continue the fast pace with JavaScript and AJAX. Chapter 10 covers Flash as another programmable way of displaying XML content.
Once you understand the overall organization of the material, you can dig into each chapter and learn enough to get you started. This is not a compendium of all the detailed methods of dealing with XML. Rather, this is an introduction to the techniques and vocabulary that will help Web developers launch into the domain of manipulating XML data and XML documents. Like travel books that distill a culture or country enough to fit into a book, it becomes almost an outline without any dense discussion of history or tradition behind these technologies. The pace is consistent � and fast. The writing is not excellent � there will be no award for great prose here � but it is very readable. I get the same feeling when I'm being shown through a museum or store by a friend who points out the important things but rushes me through so we can see it all in a short amount of time. There is no time wasted on the presentation or layout aspect of Web design but there is plenty to read about the guts, the engine (or maybe more accurately, the transmission) behind Web programming. There is a lot going on with scripting, and we will be seeing more of this in the future, so I am glad that Sas Jacobs concentrates the middle chapters on these techniques.
From Pieces to Applications
The final chapters deal with more real-world topics, but stepping back from the client. Chapter 11 about server-side techniques is a necessary counterbalance to all the client-side topics so far. Finally, the last two chapters deal with applications - in .NET and in PHP. Here is where you can see how the pieces fit together in very real-world practical scenarios. It's a good way to motivate you to put what you have learned into practice. I was disappointed that it was over so soon.
Criticisms
There are certainly a few criticisms of this book, but these are probably answered with the phrase "but that's outside the scope of the book" or "we couldn't cover everything". I don�t know why there is no mention of XQuery. Also, I found it strange that the DOM (Document Object Model) is brought up early and then left not to be presented until half-way through the book. With mention of it in the title being so prominent, I thought it would have deserved earlier explanation and motivation. But my biggest complaint is that there is no mention of Java or Java-based solutions for accessing, manipulating, and outputting XML data from Java code. The author completely ignored JAXP, JDOM, and jom4j as valid and popular methods for manipulating XML for Web development.
This book mentions RSS and SOAP, and puts them in a category of Web vocabularies; I might have put these in a separate chapter, maybe with more discussion on Web services, but I understand her reasoning. And I am not the first to notice that there could be an appendix listing places to go for more information. I've included my own very brief list at the end of this article. There are so many topics covered in this book that readers will definitely be using the Web to look up more information.
Conclusion
The quote on the back "everything you need to get ahead" is overstated because it does not provide everything to get ahead, but it it does provide most of what you need to get started in a big way. This book is really about understanding the basis of Web development as manipulating XML content with the latest tools. If you are looking for a good introduction to the basis of most of the tasks of Web site development, then this book is a winner. Sas Jacobs does a great job of encapsulating what could be a huge topic into a reasonably sized book at roughly 400 pages. This book does not feel big at all. Despite the omission of a few subtopics, I think this book does a great job of organizing a huge (and growing) subject and presenting real-world examples in a concise and organized package.
!More Reading
For those who want to dig deeper, you can read about these XML and Web introductions:
In "An Introduction to XML and Web Technologies", Anders M�ller and Michael I. Schwartzbach (Addison-Wesley, January 2006)
For more information on Java API for XML Processing (JAXP),