The next time I see someone saying XML is inevitably hard to program to, I'll have a link to some code to show them:
public static void main(String[] args) {
Abdera abdera = new Abdera();
abdera.getFactory().registerExtension(new ActivityExtensionFactory());
abdera.getFactory().registerExtension(new AtomMediaExtensionFactory());
Feed feed = abdera.newFeed();
ActivityEntry entry = new ActivityEntry(feed.addEntry());
entry.setId("tag:site.org,2009-01-01:/some/unique/id");
entry.setTitle("pt took a Picture!");
entry.setVerb(Verb.POST, false);
entry.setPublished(new Date());
Photo photo = entry.addTypedObject(ObjectType.PHOTO);
photo.addThumbnail(
"https://example.org/pt/1/thumbnail",
"image/jpeg", 16, 32);
photo.addLargerImage(
"http://example.org/ot/1/larger",
"image/jpeg", 1024, 768);
photo.setTitle("My backyard!");
photo.setDescription("this is an excellent shot.");
photo.setPageLink("http://example.org/pt/1");
}
That generates Activity Streams (AS), an extension to Atom - you can read about it here - http://activitystrea.ms. I think Activity Streams are going to be an important data platform for social networking.