Most helpful positive review
on June 13, 2001
In Chapter 1, XML is introduced as a mark-up language and its inherent extensibility emphasized. This is followed by a detailed treatment of XML syntax in the next chapter, with emphasis placed on the hierarchical nature of XML. The authors do include a discussion of Processing Instructions (PIs) for users who want to use XML in this fashion.
Document Type Definitions (DTD) are the subject of Chapter 3, where the authors communicate effectively how DTDs formal grammar is used to specify the structure and permissible values of XML documents. The formal DTD structure is discussed, and the principles behind writing DTDs are effectively outlined. They also discuss the problems with using DTDs.
Data modeling with XML is discussed in the next chapter, with information modeling via static and dynamic models treated in detail, and the authors carefully distinguish these two approaches. The actual designing of XML documents is given a nice overview as well as the role of schemas in XML. This is followed in Chapter 6 by a discussion of the (tree-based) Document Object Model, which overviews how XML documents can be accessed by various programs. Some helpful examples are given on how the DOM can be used to create an XML document programmatically. An alternative way of processing an XML document is discussed in the next chapter on the (event-based) SAX interface. The authors outline in detail the benefits of using SAX rather than DOM. In Appendix B the reader will find the Internet Explorer 5.0 XML DOM 1.0 W3C specifications. In addition, in Appendix C, the specification for the SAX 1.0 interface is given.
The shortcomings of DTD are addressed in terms of XML Schemas and namespaces in chapter 7. Since this book was published, XML Schemas have reached W3C recommendation status as of Nov 2000. The authors give a good overview of namespaces and schemas, with helpful examples. This is followed in chapter 8 by a discussion of how to link and query into XML documents using the XML information set, XLink, XPath, XPointer, XML Fragment Interchange, with XLST covered in the next chapter. For database applications, the authors outline the differences between relational databases and XML documents. A very detailed treatment of how XLST transforms the source document is given, and the authors compare XLS and DOM transformations. An Internet Explorer XSL reference is included in one of the appendices of the book.
More details on the relationship between databases and XML is the subject of chapter 10, wherein the authors show how to store XML and how data can be communicated between different servers using XML. The issues involved when moving data from RDBMS to OODBMS or from Oracle to Sybase, are discussed by the authors. This is followed by an interesting discussion on how to use XML as a distributed component model for server-to-server communications via XML-Remote Procedure Call and Simple Object Access Protocol.
E-commerce applications are discussed in the next chapter, with EDI and its improvement via XML. The business markup language cXML , which allows business to business electronic commerce transactions across the Internet, is also treated in detail.
The authors then finally discuss how to render XML documents more readable and pleasing for the viewer in the next chapter using the style languages CSS and XSL. The discussion is really interesting, for the authors dig a little deeper into the foundations of style languages. The discussion of style languages as rule-based languages is particularly illuminating.
The next chapter is very interesting and its inclusion is actually very surprising, namely a discussion of the Wireless Application Protocol. The authors give an introduction to the Wireless Markup Language and WMLScript. The book ends with four useful chapters on case studies for data duality, distributed applications, a book catalog information service, and SOAP.
There are many applications of XML in many different areas, such as CellML (proprietary) used in cell biology, CML (Chemical Markup Language) for molecular chemistry, IML (Instrument Markup Language) for control of laboratory equipment, BSML (Bioinformatic Sequence Markup Language) for gene sequencing, and MathML for formatting of mathematical equations. I find XML an extremely powerful approach to information reporting and I am currently developing a package called NMML (Network Modeling Markup Language) for use in reporting results in simulation and mathematical modeling of networks, and FMML (Financial Modeling Markup Language) for use in reporting results in the modeling of financial instruments. This book, along with the W3C specifications, has been a tremendous help in the development of these applications.