I have wrote XML data source based on VTD-XML 2.0 (http://vtd-xml.sourceforge.net/). It is fastest for XPath'es.
Example for my reports:
For exporting report using default jasperreports datasource it takes more then 20 minutes to export to PDF.
When I use xml datasource based on Jaxen, it takes 3 minutes.
And now, when I use VTD-XML it takes some less then 1 minute.
Mayby not everything can be done with VTD-XML, but for simple XPathes its enough.
In attached code there is some caching mechanizm. When XPath begin with "/" so I use it like a constant value for this XML file. I introduce this, because JR rerequest fields values from every report section (not only for detail section, but for header and footer too) every time, when it moved to the next record (next() function). For big XML documents it very carry weight!
Source in attachement, good luck