We do have an open enhancement request for this, but having attempted it, it isn't as simple as it sounds. We allow MANY things to be either child tags or attributes at almost everything level (service, adapters, destinations, etc). There is also a very flexible heiarchy of places where you can set defaults (service, adapter, destination, etc). Internally we convert the XML to a nested Map-style configurations which hides the XML syntax almost completely.
If you want a starting point, you can run various tools (XMLSpy, etc) over the files found in resources/config and start with that as a sample schema.