So Google published a Contacts API based on Gdata (in turn based Atom and Atompub). This particular Application Protocol Interface allows client applications to view and update user contact details and most
Google services have access to the contact list.
Grand. Lots of extension XML. You talk GData you're set. However aside from pulling this data around into address books, a really common case is just showing the user the info.
In that vein, here's the same data, using the hCard microformat embedded in the atom:content element instead of GData extensions:
Which is a format more focused on the address domain - for starters it does not use Atom as a scaffold. I'm not going to try to convert that into hCard, but do note the "CamelCase" style markup; that's generally done to ease roundtripping in and out of OO languages (if you're a Java dev and have used XStream you'll have seen this in action).
Again more CamelCase markup, but the thing to note here is that the elements are not always carying the key information. There are Type attrributes that have the information your really want, such as "Type='Street'". xAL is in a sense a 'domain specific schema language'. It also has overly specific and/or localised elements like "ThoroughfareTrailingType". There's a lot to the xAL spec; what you see there is but a fragment.
The Irish government have a profile of it for eGovernment interchange.
Conclusion: FTW!
Microformats rock for the web - as well as being machine readable they can be lopped into a browser and are instantly 'people readable'. hCard+Atom at least seems to hit a sweet spot between machine usefulness and ease of reading for people; I won't go as far as saying it's more generally useful than the other options I've shown (but I'm tempted). This is not meant as a slight on the people working on the 3 formats above; address modelling is a deceptively hard problem - read the xAL spec if you don't believe me.