XML Demystified

by Jim Keogh and Ken Davidson (McGraw-Hill, 2005)

Some people can go through life without worrying about XML (Extensible Markup Language); as far as they are concerned, it's all a big technological mystery. Other people need to work with XML, however. XML Demystified is a first step towards that understanding.

The book is part of a Demystified series from McGraw-Hill that can probably be looked at as a competitor to the Dummies series books -- a fast introduction to a particular subject that gives you the basics and teaches you the vocabulary, but isn't going to teach you everything you need to know.

There are some advantages to the Demystified series. First, you don't have to carry around a bright yellow book with the word Dummies emblazoned on the cover. Second, it strips all the filler out of the Dummies series -- the cartoons, the pages of snarky introduction to each chapter, the sometimes forced lists of ten at the back of the book. In its place XML Demystified gets serious. There's a quiz at the end of each chapter (with the answers in the back of the book) as well as a final exam. That's probably fitting, for the authors are both faculty members at Columbia University, as well as consultants.

Now that we've established that this is a more serious treatment of XML, what do they cover? The book takes a step-by-step approach to the basics. After an introductory chapter, you learn what's in an actual XML document in chapter 2; how the XML files are basically a database constructed of tags, like HTML tags, that hold data.

The power of XML actually comes from the X. It is an eXtensible language that anyone can customize for their own situation. You do that by creating Document Type Definitions, which is the topic in Chapter 3. Once you learn these two chapters, you know enough to create an XML document. However, you don't know enough to use them. That's what the rest of the book covers, in chapters on: XML Schemas; XLink, XPath, XPointer; XSLT; XML parsers and Transformations; Really Simple Syndication (RSS); XQuery; and MSXML.

As a webmaster and blogger, I'm probably most familiar with RSS as an XML application. So looking at their RSS chapter in a little more depth can illustrate the strengths and weaknesses of the book. In many ways, the strength and weakness are the same -- it covers RSS in ten pages. They give you the basic tags you need to construct an XML feed using RSS 2.0, starting with a bare-minimum feed and then introducing some of the other tags that will make the feed more useful. However, the chapter is somewhat disengaged from the real-world. There are a couple of paragraphs of history, correctly citing Dave Winer as the father of RSS. They do give links to two aggregators (newsisfree.com and syndic8.com) that you could follow to find out more. Their sample RSS feed shows that they are using RSS 2.0, which at least alludes to the fact that there may be more than one RSS standard, but otherwise ignores the whole subject of different RSS versions, Atom, etc.. And while the conclusion to the chapter states that RSS "enables content providers to make their documents available to other web sites using an aggregator much like a local newspaper distributes their news stories to media outlets using a news wire service", nowhere in the chapter (nor the book) does the word blog or weblog come up. Since this book has a 2005 copyright date, it seems to be a curious omission for one of the most popular uses of RSS.

That probably sums up the strengths and weaknesses of the book. Like Dragnet, which concentrates on just-the-facts-ma'am and quickly plows through a story, this book quickly gets through the facts in each of its chapters. The writing is clear and straight-forward. However, it probably skimps a little in relating a particular subject to how it is actually being applied to the real world, or what tools are available to implement it. Of course, including that material also is fast way to date a book, and make it obsolete more quickly. So this book may be even more useful in a classroom setting, where the instructor can provide the real-world context, than it would as a teach-yourself book. Since the authors are actual teachers, this may be their intent.

The book itself is a brief 221 pages, including the index. It probably wouldn't hurt to splurge on an extra ten pages or so, sprinkled throughout the book, suggesting some of the tools you could use such as text editors, or specialized XML or HTML editors that can help you write valid XML code. It may also help to have a website where you can download some of the bigger chunks of example code, to save the drudgery of typing it in yourself. As a former instructor, I know that there are definite benefits to having your students get familiar with the actual nuts-and-bolts by typing it in. On the other hand, the book does emphasize speedy learning with "a time-saving approach."