"How do you create or consume XML from within your programs?"
First of all, let's ban the word "consume" from any discussion of data . That includes "web services"
Oracle has very nice conversion functionality between XML and its relational model. I'd look there first.
"XML is a markup language technology (as it's name clearly states), and as such, it can be used for anything we want (yes, including data storage/transfer/formatting/etc... just as HTML)"
No argument there. My point is that XML languages (I feel like the GNU/Linux guy) don't do anything but markup text well. I can buy a car with dimes. Why would I want to?