Hi ess,
Whilst I am not an expert with Orbeon, I am however experienced with enterprise architectures. So, lets get back at the prime requirements:
- Ease to produce different formats (presentation of data)
- Flexibel data, as it will evolve (dynamic data domain)
- Performance
(- ignoring others)
Obviously, the first stands clear. XML is the way to go, question is, how to store it, and how to manipulate it. As there are other 'engines' out, like Cocoon and Chiba (and surely other smaller ones), Orbeon is most matured regarding to XForms, at least to my opinion. But basically, all you need is a stylesheet to transform the XML into any other specification (html, iso-excel, etc) and a set of controls. So, XForms would be a good candidate.
Storing XML and query-performance is something different. Especially when having alot data (many files) or just huge chunks of single XML files could be a problem. Like SQL, there are many XML databases out there (for the record, OO-databases might be a solution as well, given high through put and suits read-only/reporting type of applications). As for native XML databases, eXist is an open source XML with good reputation or Tamino for commercial (non-open source) ones. While there might be hybrid solutions (SQL databases supporting XML) it boils down to budget, scalability and performance. I'd go native XML here. Either way, with a flexible data domain, xpath/xquery is your friend and key.
Regardless of choice, keep in mind that if scalability is something to keep in mind that you have to deal with it architecture wise. I talk about layers here and perhaps other types of application servers. Keep your database isolated versus embedded.
If client side execution is important (render performance), then there are other options to examine, like XUL (Mozilla) and MXML (flash/flex/air) to mention a few.
Hopefully I gave answers or guidelines and not more questions...
Success,
Mike