Book Reviews

The following book reviews are the copyright of their respective authors and no part should be reproduced without the express permission of the author. Publishers and Authors of the books reviewed may reproduce the whole or extracts of a review for their book. To request copyright permission please email

All the reviews herein are the opinions of the reviewer and are not necessarily the views of Birmingham Perl Mongers and its members. If you feel a review or comment has been made in error, please contact to rectify the situation.

XML Books

Static Link:

XML In A Nutshell (2nd Edition)
Title:XML In A Nutshell (2nd Edition)
Author(s):Elliotte Rusty Harold & W. Scott Means
Publisher:O'Reilly Media

The problem with XML is that is fast becoming a used and abused mark-up language. As such it has been changing, improving and abstracting for about 4 years now. To keep up with the trends must be a nightmare. I've been quite lucky in that most of the application that have required XML as an interchange language, have only need basic aspects. However, there are many applications and standards which push XML's boundaries. This book aims to cover a good portion of these applications and standards, and help separate the wheat from the chaff.

This is the second edition, and while I have never read the 1st edition, the forward states that there have been many changes and additions, which is nice. It also means I have more to read :)

The book is split into 4 parts, XML Concepts, Narrative-Centric Documents, Data-Centric XML and Reference, and there is much to learn within each. However, you don't necessarily need to read the whole book to get a lot out of it. Like with many '...In A Nutshell' books the idea is to dip in when you need some clarification as to what you are supposed to be doing, and you can do that here too. However, it also provides a quick learning manual for a lot of aspects of XML.

The first section, XML Concepts, is concerned with how XML is defined, the elements, the tags, DTDs, etc. It's a fairly short section, but is probably the only must read section of the whole book. There is a lot to understand about how an XML document must be defined to be compatible with various standards, and this section does demystify some of that. There are plenty of code snippets to clarify the descriptive examples, as well as some pretty pictures too. Namespaces and Internationalization are also covered, which may help to explain why some of the tags and DTDs contain what they do.

The second section, Narrative-Centric Documents, Is primarily concerned with XML formats that are aimed to be man-readable or easily transformed into a man-readable format (perhaps by a web browser). XML was intended as a simplified SGML (Standardized General Mark-up Language), and as such describes it's contents in a very simplistic way (well it can get complicated but not as big a headache as SGML). The section covers XHTML, XML and Modular XHTML for the web, XSLT and XSL-FO, which are all based on standard XML and take it that bit further to do something useful with it. There are all fairly simple to learn having learnt the basics. You also get chapters on XPath to help with breaking down the XML document and CSS to provide a presentation layer to XML documents.

For those interested enough by XML for the web, it could be worth your while looking into AxKit (, which is an XML Application Server for Apache.

The third section, Data-Centric XML, is more concerned with how I was originally introduce to XML. Back in 1998 I started working for a Medical Software House in the UK, called AAH Meditel, who sadly no longer exist. As part of the flagship product, System 5 was able to produce carefully formatted prescriptions using the GP's standard printer, on the Health Authority supplied prescription forms. The government having seen a need to allow the pharmacy to do the printing, revolutionised the method by which the GP in their surgery could hit a button to send the data down the line to where it need to go. The pharmacist could then collect the printout and have the prescription ready by the time the patient walked in the door. A great idea, and was all made possible by XML. In order to ensure the data got from one network to another, via the internet it had to be secure and reliable. The encryption handled the secure and the XML handled the reliable. XML Schemas, DOM and SAX are covered extensively in this section, and introduce the reader to XML-RPC and SOAP as data interchange mechanisms that have successfully implemented the XML format to transfer data across networks.

SAX (Simple API for XML) deserves special mention, as it was originally derived for Java, but has now been successfully implemented by several languages. It is becoming quite a wide spread phenomenon, being used within many application both web based and for the desktop. It enables a standard set of routines to be implemented to extract/create/update XML documents.

The last section, Reference, is a handy drop in section for quick man style lookups for XML Schema 1.0, XPath, XSLT, DOM and SAX among others. The usual '...In A Nutshell' style of quick reference guide.

I have to confess to having to read all of the book, though with this style of book it is rare you get to all of it. However, the majority that I have read has proved exceptionally useful. If you're looking for a book that throws you in at the deep end or need a handy guide to several aspects of XML, then this is definitely a book for you. If you only need one aspect to XML, such as XSLT or XSL-FO, there are other O'Reilly books that might be better, but as a complete guide there isn't too much that isn't covered.