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:

XSL-FO (Making XML look good in print)
Title:XSL-FO (Making XML look good in print)
Author(s):Dave Pawson
Publisher:O'Reilly Media
Reviewer:Steve Pitchford

Whilst it's a good idea for Perl programers to gain some experience of XML, and I will assume that you, the reader are aware of such technologies, fewer people in the Perl community seem to have a working knowledge of XSL ( Although a larger proportion will recognise it as a rather convoluted way of processing XML documents ), so I will assume that even fewer of heard of XSL-FO.

As a way of breaking the ice, as it were I will begin with a simple explanation of the technology:

XSL-FO can be thought of as an XML based, html style language to produce documents designed for print, such as PDFs.

The power of XSL-FO comes from it's tagset, and the way it integrates with XSL. The tagset is, in practice a lot richer than html, and as offers much better page layout control ). XSL facilitates the simplification of the XSL-FO document, by allowing both the separation of style and content, into XML and XSL-FO respectively, and also the complex formatting to be expressed programmatically.

So, hoping that I have provided a sufficient explanation of XSL-FO, I'll move onto the book its-self. Weighing in at about 270 pages, the material is presented in 11 chapters, with an additional 70 pages of appendices, and a short glossary.

A quick scan through this book gives hints to its quality almost immediately. Each chapter is broken down into smaller sections, normally no longer than a page, and often shorter, with clear use of white spacing, examples, and illustrations. Even though I had been working with XSL-FO for a while before getting this book, I still managed to get a lot out of it, as Dave Pawson clearly not only understands his subject well, but is able to present it in a manner that is both clear and concise. The book largely takes a narrative approach, rather than an instructional one, which I feel is to the benefit of the target audience, and also positions it nicely for the train and bus journeys I so often find myself on - no computer is required to get full benefit at read-time. You may have guessed by now that I'm impressed with this book, and, given the lack of material on this subject O'Reilly deserve credit for producing such an excellent introduction to this subject.

At this point it is probably worth moving onto who I feel the target audience for this book will be. In the preface Dave Pawson explains that a basic understanding of XML and XSLT, in particular the knowledge of how to process XML with an XSLT processor is essential in order to get anything out of this book. I would say that those who will get most out of it will be people who have had experience in generating html from XML using XSLT, which will probably sum up a good percentage of those interested. In the preface it is also stated that the book covers the recommendation, and not the implementation, but unfortunately does not explain the reasoning behind this subtlety. This is because a lot of FOP implementations ( most notably the Apache Product FOP ) do not as yet offer 100% compliance, although, to FOP's credit it does offer sufficient to operate in a production environment. I feel that this is a strength, as the march towards compliance is likely to move faster than a book can keep up with.

Before I move onto the summary of the review, its probably worth highlighting what some may consider a slight deficiency in the book, which is hinted at above - it primarily covers XSL-FO, and does not go too deeply into the production of XSL-FO using XML and stylesheets. I personally don't mind this, as it allows the reader to gain a good understanding of the subject matter without the added complexity of XSLT, which can be at times a right pain, and once again, Dave Pawson is honest about this, and recommends Mike Kays XSLT Programmers Reference (Wrox Press), for this purpose, although not having read it, I cannot comment further.

In conclusion, this book provides an excellent grounding in XSL-FO, and is often recommended on the FOP mailing list, but should not be considered on its own, unless you are already familiar with XSLT and XML. However, for any one wishing ( or have been pushed into a situation where they have to ) learn XSL-FO, I would not hesitate in recommending this book.