Rating:  Summary: Another excellent "Effective" book Review: Who nowadays does not know what is XML? There has been so much hype around it, that some people think that XML is a programming language, a database, or both at the same time :).On the other hand, if you are a developer, chances are that you feel that there is not much to it. After all, it may take just a few hours to get the hang of creating and parsing an XML document. Maybe this is why most of the voluminous books discuss numerous XML-related technologies, but not the XML usage itself. Elliotte Rusty Harold in "Effective XML: 50 Specific Ways to Improve Your XML" takes a different approach: know your elements and tags :) -- they are not the same thing! -- and weigh your choices in a context, because any technology applied for the wrong reasons may fail to deliver on its promises. Following Scott Myers' groundbreaking "Effective C++", the author invites us to re-evaluate seemingly trivial issues to discover that life is not as simple as it seems in the world of XML. In each of the 50 items (chapters) he gets into the inner workings of the language, its usage and related standards, thus giving us specific advices on how to use XML correctly and efficiently. The 300-page book is divided into four parts: Syntax, Structure, Semantics, and Implementation. Yet in the Introduction the author sets the tone by discussing such fundamental issues as "Element versus Tag", "Children versus Child Elements versus Content", "Text versus Character Data versus Markup", etc. On these first pages the author started earning my trust and admiration for his knowledge and ability to get right to the point in a clear and simple language. The first part, Syntax, contains items covering issues related to the microstructure of the language and the best practices in writing legible, maintainable, and extensible XML documents. In it, over 19 pages are dedicated to the implications of the XML declaration <?xml version=...> ! Doesn't it seem a lot for one XML statement that most people cut-and-paste at the top of their XML documents without giving it much thought? Actually not, if you follow the author's reasoning and examples. The second part, Structure, discusses issues that arise when creating data representation in XML, i.e. mapping real-world information into trees, elements, and attributes of an XML document; it also talks about tools and techniques for designing and documenting namespaces and schemas. The third part, Semantics, explains the best ways to convert structural information represented in XML documents into the data with its semantics. It teaches us how to choose the appropriate API and tools for different types of processing to achieve the best effect. This chapter has a lot of good advise to make the solutions simple, effective, and robust. The final part, Implementation, advices on the systems' design and integration issues related to the utilization of XML; the issues like data integrity, verification, compression, authentication, caching, etc. This book will be useful to a professional with any level of experience. It may be used as a tutorial and read from the cover to cover, or one can enjoy reading selected items, depending on the experience and taste. The book's very detailed index makes it an excellent reference on the subject as well. In the Prefix to the book the author writes, "Learning the fundamentals of XML might take a programmer a week. Learning how to use XML effectively might take a lifetime." I am not sure about the "lifetime" -- it is awfully long time for using one technology -- but for the most confident of us this still may not be enough :) . Your term may vary, but I suspect that you could shave off it at least a few months by browsing through it once in a while. Most importantly, this will make you a better professional and make you proud of the results of your work. Wouldn't this worth your while?
|