The architecture you present is quite solid; I think it might be useful to refer readers to some open-source, pure Java tools which facilitate the use of such a design. First (and perhaps foremost), there is the Apache XML Project's Cocoon (http://xml.apache.org/cocoon), which not only implements a very similar architecture to the one you describe, but provides support features such as compilation of XSLT stylesheets to pure Java transformers, and a JSP replacement called XSP, which is used to construct dynamic XML content (and is also compiled to Java classes).
Second, readers may be interested in Castor (http://castor.exolab.org), which is a Java Data Objects engine that supports transparent mapping between RDBMS data, XML, and Java objects. In addition, Castor includes a code generation tool which will product Java source code for classes following the same structure as an XML schema.
Finally, there are a number of useful adjunct projects to the Enhydra application server (http://www.enhydra.org). While less XSLT-centric than Cocoon, several (including Zeus, an XML-to-Java data binding tool, and Osage, a Java-to-RDBMS persistence engine) offer very tempting features, especially considering their open-source status.
While each of these tools have their own APIs and configuration methods to learn, they can pay off large dividends in a larger application, without requiring you to pay the heftly licensing fees expected by commercial XML application server vendors.