A mechanism is needed both to get configuration information from components and to configure components.
One way to do this would be to have a built-in xml server (optionally) attached to every component, that would spit out its xml config file on demand. If this were bi-directional, it could also be used to write configuration info (using xml) to the component.
Configuration info passed using xml should be the sorts of things that aren't likely to change very often. For stuff that's less static, a specific object should be created. XML is just an easy and extensible (though inefficient) way of being able to send a bunch of different sorts of things (like the config info for every conceivable type of component). Efficiency is unimportant if you're only sending it once in the lifetime of the component.