My only experience of this was building an output 'report' from an e-Recruitment interface.
The output xml is sent back to the source to give them a heads-up as to what records loaded and what recs failed (and why).
We ended-up creating the tags on the fly as the output was too variable to contain with an xsd.
AS for the tool, I used trusty pl/sql and fnd_file. Not rocket science!
Not had a chance to play with xml publisher yet.
_________________________
HCM Aces is for sale! Please contact me if you are interested.
Also
my random musings courtesy of Twitter