Hey everyone,

I am going to be developing a reporting component based on a relational database. Reporting is a big thing, naturally. So I want to make sure I do it right. I have been doing a lot of research, and I want to see what you all think of the following "plan of attack":

I am running a PostgreSQL 8.3.7 database. For now, I am going to focus on the back-end, and assume that I have been given some report specification to follow.

First, I need to convert the contents of the database (based on the report specification) to XML. I figure I can do this one of two ways: First, I can use the XML operations within PostgreSQL (I am not familiar with these), OR I can use something like XML-DBMS, which is an open-source java solution. What do you guys think?

Then, I need to take that XML and process it. I ultimately want the report in a PDF format. So I will use XSLT to transform the XML data, XPath to navigate through the XML data, and XSL-FO to format the XML data.

Finally, I will need an XSL-FO Processor to output a PDF report. I want to use an open-source processor. The two I found were Apache FOP and FOP. What do you guys think? Does anyone suggest a different method?