awesome tim!
Regarding doing raw xml feeds from umbraco you can also use the /base functionality
(this is not documented very well I know...)
But in short /base is an extension model for building raw data feeds from what ever .net method you setup.
there are a couple of demo feeds available.
Take a look at /config/restExtensions.config and enable these:
<ext assembly="/bin/umbraco" type="umbraco.presentation.umbracoBase.library.member" alias="currentMember">
<permission method="data" allowAll="true" />
<permission method="logout" allowAll="true" />
<permission method="setProperty" allowAll="false"/>
</ext>
Basicly what the above code does is reference the assembly umbraco.dll and it's umbraco.presentation.umbracobase.library.member class.
in this class there are a bunch of methods, among these data(), logout() and setProperty(alias, value)
so with this setup you can reference the output of these methods directly with url's
f.ex: /base/currentMember/data.aspx will return the xml of the current logged in member.
/base/currentMember/logout.aspx will log out the current member
/base/currentMember/setProperty/zipcode/90210.aspx will set the zipcode property on the currentmember to "90210"
this is extendable so you could do an assembly with methods that return a nodes xml based on the like /currentPage/data/ID.aspx
or whatever you would like to get back in it's raw form.
... better make a todo called "Write a book about /Base"
Umbracian Personal blog: Objects.dk