Charles writes here about using SISC to configure Java applications at runtime. SISC is a Java based implementation of Scheme.
I speculated (at around the same time) about using Jython for the same purpose. Not only do these approaches allow very powerful runtime configuration of your application, but you are not limited by a schema or DTD. If a method is exposed, you can call it from your script.