We used XML-defined forms to avoid distributing a zillion simple Swing panels with a fat client. A small framework allows XML specification of a subset of Swing components. It also populates fields from a Hashmap matching on the component name and moves any data entered to another Hashmap the same way. The whole thing kept the Jar size down on the
Java distribution, but added XML files to the mix.
Along with XML-to-Swing tools, there are some XML to generic UI tools that could be portable across languages. That might be another motivation to use XML defined UI.