book reviews
The XML Companion

ISBN: 0-201-34285-5

Author:

  • Neil Bradley. Mr. Bradley has worked with SGML over 10 years and now works with XML. He has designed editorial and deliver systems for publishers in oil, aerospace, telecommunications, and patent industries. He is a senior technical consultant for TTCG (Thomson Technology Consulting Group). Bradley wrote The Concise SGML Companion as well.

Pages: 440

Intended Audience:

The XML Companion was written to serve the programmer, analyst, or consultant that needs to understand the details of XML and how to implement XML applications. This title builds on the formula that Bradley used in his previous title, The Concise SGML Companion. Bradley presents an accessible, in-depth reference to the XML standard as well as providing an extensive glossary of terms and general tips and techniques for using XML.

NOTE: Although XML has similarities to both SGML and HTML, this book assumes no prior knowledge of either standard. It is designed to serve professionals who are starting from ground zero. Therefore, if you already are conversant in SGML or HTML, you can feel free to skip sections that section. Also, Bradley has included special "HTML Notes" and "SGML Notes" that highlight the differences between XML and the respective related languages.

Summary:

This book is divided into 4 sections. The first section focuses on the XML Specification (Chapters 1 to 8). This section is intended to be read from start to finish and will provide the reader with a background for XML, a syntax overview, XML document markup principles, and entity usage. This section is rich with diagrams and examples to provide a touchstone or the narrative. Although the text is intended for those just starting with XML, it is clearly targeted at a sophisticated, technical audience. Each XML construct that is followed by a superscript number is linked to a structure chart in Chapter 18, Roadmaps. The structure charts are provided as an aid to steering the user through the XML standard and the draft XLL standard. XML constructs are linked through the same superscript number to its definition in the Glossary as well.

The XML specification chapters clearly provide a concise introduction to XML. I particularly liked how Bradley highlighted some of the details of the standard that might escape many upon first reading. For example, Bradley provides excellent examples of the use of the new "empty" tag syntax; showing that it can be used for elements that are empty according to the DTD as well as for elements that have no content in the instance. Explanations of the rules of case sensitivity, mixed content, reserved attributes, and significant spaces were excellent as well. The "SGML Notes" and "HTML Notes" helped readers with an established background avoid the trap of making false assumptions about XML based on their prior knowledge.

Bradley includes discussions of the concepts of two other XML specifications that are currently W3C work items. These are XLL (linking) and XSL (style and transformation). Although the exact syntax of XLL and XSL are likely to change before these become W3C recommendations, the basic concepts and principles will likely survive. These chapters give readers valuable insights into the "big picture."

Working with XML (Chapters 9 to 12) provides readers with valuable tips and techniques. The section provides the basics in developing software to read and write XML. Discussions of API's and the Document Object Model (DOM) are found in here. This section also provides background into advanced XML topics such as architectural forms, modeling metadata, and the powerful concept of namespaces. These chapters are highly technical, clearly designed for programmers.

Related Standards (Chapters 13 to 16) provides readers with information about additional standards that may be required as an XML application is developed. A detailed discussion of character sets helps the reader sort out ASCII, extended ASCII, and unicode. In this section the versions of HTML are reviewed and SGML is discussed. Again, Bradley focuses on the technical details which separate XML from these related standards. Finally a concise discussion of Cascading Style Sheets (CSS) is presented. CSS will soon be recognized by major browsers to provide style rendering of XML-coded data. And used with XSL, CSS will provide even more powerful style application capabilities.

Reference Material (Chapters 17-18 and Glossary) provides many reference tables, charts, and definitions. This section provides details that programmers will need on an ongoing basis. Superscript numbering scheme provides links from the reference section back to discussions and explanations earlier in the text.

I found the XML Companion to be just that. It provides an excellent, but concise, introduction to XML. It provides more technical discussions for those that will be writing XML processors. I particularly like the way Neil Bradley points out details of the standard that remain mysterious to many, the way that he relates XML to prior knowledge of other standards, and the way he provides a complete picture through numerous diagrams, examples, and explanations of related standards. This book is a must for your XML library!