It's definitely possible (and not too hard) to use GAE to host "web services that communicate over http and accept / return xml".
To parse XML requests (presumably coming in as the body of HTTP POST or PUT requests), you have several options, e.g. pyexpat or minidom on top of it, see this thread for example (especially the last post on it).
If you wish, you could also use minidom to construct the XML response and write it back (e.g. using a StringIO
instance to hold the formatted response and its write
method as the argument to your minidom instance's writexml
method, then turning around and using the getvalue
of that instance to get the needed result as a string). Even though you're limited to pure Python and a few "whiteslisted" C-coded extensions such as pyexpat, that doesn't really limit your choices all that much, nor make your life substantially harder.
Just do remember to set your response's content type header to text/xml
(or some media type that's even more specific and appropriate, if any, of course!) -- and, I recommend, use UTF-8 (the standard text encoding that lets you express all of Unicode while being plain ASCII if your data do happen to be plain ASCII!-), not weird "code pages" or regionally limited codes such as the ISO-8859 family.