In my experience with HL7 it's a standard, but every single system you talk to you need to write custom code to handle them, because everyone talks the "standard" a bit differently.
[edit] and as for the XML v3, nobody uses it. Nobody.
Absolutely (for both points). I found HL7v2 to be more of a 'standard of communication of data' as opposed to a 'standard of data'. A lot of the work I did in my last job was dealing with these differences... I think the best investment of my time was the code I wrote to more easily interact with the messages, just to help alleviate those differences.
[edit] and as for the XML v3, nobody uses it. Nobody.