Sorry, I read your question too fast. I thought you meant routing a particular message to different endpoints (URLs) based on the message content.
What do you mean by Canonicalizing, exactly? Creating one XML standard or multiple based on various client needs?
I haven’t had the need to parse/write XML messages, thankfully, all of our clients support the JSON model.
I don’t think the webservice module will help. Yes, you’ll need it to send HTTP requests, but it’s very bare-bones and requires you to modify messages, return replies, make custom configurations, etc. via scripts in the various UPoCs along the message’s route. It’s basically just a sender/receiver interface for HTTP protocol messages, everything else needs to be done via scripts. For example, I’m turning an incoming HL7 message into JSON object to be sent to a REST endpoint and all message building/modification is done through a TCL script in the route configuration.