There is a post I wrote some time ago that explains how the request and response pipelines work (with some UML pictures):
http://blog.recursivity.com/post/5433171352/how-bowler-does-rendering-maps-requests-to-objects
..the default Bowler RenderStrategy uses the http "Accept" header provided by the client to decide whether to use HTML, JSON or something else to render back (for instance if you pass in "Accept: application/json" it will choose the JsonViewRenderer.
What you need to do to add XML rendering is add your own "XmlViewRenderer" (we don't provide one out of the box) and map it to requests with the Accept header of "application/xml".
If you want to do it by path, you would need to provide your own RenderStrategy instead of the default one (Accept header mapping is really the recommended "http way" of doing it, however the Rails community have perpetuated some slightly worse practices).