Being a techie, I've owned quite a few technical books in my time. In fact, I like to joke that I collect them like some kids collect Pokemon cards. One thing that's almost universally true of my technical book collection is that, after my initial read-through, I usually find myself using only a few parts, if any, of the books I own. Many times, I've wished that it were possible to combine these oft-referred-to sections from each book into one large reference book, or "bible." If nothing else, I figure that'd make it easier to pack when I travel.
With XML Complete, Sybex has attempted to create just such a reference bible by reprinting selected chapters from six previous XML titles. Combine that with a relatively small size for a technical book and a price tag that comes in just a hair under $20, and you've got what looks like a pretty good deal.
A good deal, that is, unless you can't stand the feel of newsprint paper between your fingers (it sucks the moisture out of mine) or you already own one or more of the Sybex titles reprinted in XML Complete. The book includes at least a few chapters from each of the following:
- XML Developer's Handbook
- Mastering XHTML
- XML Processing with Perl, Python, and PHP
- Java Developer's Guide to E-Commerce with XML and JSP
- Java Developer's Guide to Servlets and JSP
- Mastering XML, Premium Edition
Too many cooks?
Borrowing content from six other titles and somewhere in the neighborhood of 10 authors necessarily gives XML Complete a somewhat choppy and inconsistent style. For example, the first several chapters cover the basics of XML's syntax and adjunct technologies like DTD and XML Schema in a very low-level manner. It's obviously intended for a working developer audience and is therefore appropriate. However, the fifth chapter, which discusses XML design, suddenly adopts a much higher-level, abstract approach that's somewhat jarring if you happen to be reading the book straight through. I actually stopped reading at this point to check the cover and make sure that I hadn't inadvertently picked up the wrong book. You'll notice sudden style shifts like this one occurring over and over again as you read.
Granted, this is supposed to be a reference title and not be read straight through. So having an inconsistent style can't really be held against it. Taken in that light, however, I can complain about the fact that it doesn't seem to have a consistent focus. It's as if someone at Sybex pulled its 24 chapters out of a hat and slapped them together into a book with little or no editing to make them fit together. Once I got past the initial eight chapters in Part 1, "XML Fundamentals," and Part 2, "XML Data Design," which, incidentally, were all taken from Mastering XML, I lost sight of the intended audience for XML Complete amid all the topic shifting that took place.
Not much depth to be found
The hodgepodge begins with Part 3, "Working with XHTML," which is a nice introduction to the basics of Extensible HTML. Trouble is, the basics are far as it goes. Just about the time you get the hang of creating a simple document, you're suddenly done, which is a little frustrating. Since everything in this section is ripped from the significantly more complete Mastering XHTML, I have to wonder why a developer who is genuinely interested in the topic wouldn't just purchase that book instead.
In Part 4, "XML Scripting and Processing," you get a guided tour of XML technologies of direct interest to developers. Topics like XSLT, SOAP, and XML-RPC all have space devoted to them. Unfortunately, each of the 10 chapters (most of them taken from XML Processing with Perl, Python, and PHP) focuses on a different language and is rather brief. The book eventually begins repeating itself too. After learning to use SOAP and XML-RPC with Perl in Chapter 15, you'll be shown how to utilize the same technologies with Python in Chapter 18. Once again, I'd think those who are seriously interested in either language would be better served by purchasing a dedicated title.
Light at the end of the tunnel
Things actually do get better, assuming that you are interested in JSP, which is the exclusive focus of the final section of the book. Chapters 22 through 24 walk you through a Web catalog, survey, and news feed JSP application. Even though all three are fairly basic, these apps do provide some concrete examples of how XML can be leveraged in a "real" application. Unfortunately, because of the bargain-bin price, XML Complete doesn't include a CD. So to follow along with these or any other examples, you'll have to enter the source code by hand.
XML Complete includes three appendices, which offer the only original content to be found, if you don't count the title, acknowledgements, table of contents, and trademark notice pages. Appendix A reprints the entire annotated XML 1.0 specification, which could be handy if you don't have Web access to check out the spec online. Appendix B contains a useful reference to the set of recognized XML Schema elements and provides copious examples of their proper use. A SOAP reference is provided in Appendix C.
Despite all my complaints, I have to admit that the first five or so chapters, along with the three appendices, do amount to a handy reference for any developer working with XML. In the end, though, XML Complete is rather like paying admission to a theatre to see preview trailers of other movies. It's not exactly a waste of money, but I'd rather pay to see the full-length features. My advice is to skip this one and buy one of the titles it borrows from instead.