||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: XML, SAX, DOM, XSL, XSLT
Title: Effective XML
Author: Elliotte Rusty Harold
Publisher: Addison Wesley
Verdict: Essential reading for XML developers
In this follow up to the rather excellent Processing XML with Java, Elliotte Rusty Harold promises 50 specific ways to improve your XML. Unlike the Java book, this one is aimed much more at the experienced practitioner. Effective XML assumes a good working knowledge of XML, this isn't a tutorial or a introductory text at all.
After an introduction in which he very clearly defines terms (element versus tag, document versus file etc), Harold dives straight in to deliver a set of best practices and guidelines to using XML in a manner that is both standards compliant and robust. However, the book has a very practical bias, and standards-purity is not seen as an end in itself.
The 50 items detailed in the book are organised into four sections: Syntax, Structure, Semantics and Implementation. Each item comes with a discussion of the issues that are raised and the reasons for the specific recommendation. Items range from the seemingly obvious - include an XML declaration - to the not so obvious - hang on to your relational database. There is a wide range of topics here, and it is likely that only some of these are going to be useful to you immediately, but on the other hand understanding some of the wider concerns is a good idea anyway.
For example, even with a technology like XML it is possible to paint yourself into a corner or to get locked into vendor-specific tools or applications. The book illustrates both the dangers and offers sound advice on how to avoid the pitfalls. Some of them are obvious, but others are not so straightforward and Harold does a good job of teasing out some of the more arcane issues that are likely to make life more difficult in the long run.
Similarly, when it comes to issues of performance, there are pros and cons to be considered when choosing APIs or parsers. Do you go for performance or conformance? This is another of those practical issues where there is a distinct trade-off to be made, and making the wrong choice can be disastrous.
As with Processing XML with Java, it is not just the quality of the technical content that shines through. The writing is clear and the examples wisely chosen. There is a lot to be learned here, and Harold clearly wants to pass on those practices and techniques which work best.