>From my limited reading on this I think you will struggle to remove the xmlns, the rationale being that without a namespace the xml is not valid. While technically true, it is also annoying.
Personally I have a strong preference for JSON these days and use it whenever I can... simple, ubiquitous and hardly any rules to conform to. YMMV. Cheers Dave Sent from my flux capacitor. Please excuse brevity and any odd autocorrect errors. On 20/01/2014 3:03 PM, "Greg Keogh" <g...@mira.net> wrote: > I can confirm that WebAPI does as you say and it looks for a formatter > that matches the Accept header ... To make things easier and consistent for > everyone I have abandoned the idea of returning plain text in some methods, > I will always return an XML serialised class no matter how small the data > might be. This is easier to document and the client will probably > appreciate it. So the confusion about choosing text or xml will go away. > I'll leave my text formatter there as a stub just in case someone wants csv > formatting or similar later. > > I notice that if my controller method returns "string" then the xml > formatter sends back <String>hello</String> and Accept text/plain returns > "hello", which makes sense. If I try to get a class back as text it ignores > me and I get XML anyway, which also makes sense. > > My task now is to remove the xmlns="" clutter from the xml root. > > Part of my learners confusion is the large numbers of return types that > are possible from controller methods, some not even in the same class > hierarchy. > > Greg K > > > > On 20 January 2014 14:31, David Burstin <david.burs...@gmail.com> wrote: > >> Greg, let the web API deal with the formatting. Your controller should >> ideally just return an object which will be formatted according to the >> request. >> >> (apologies for brevity, I am playing mini golf with my son) >> >> Try it in Fiddler and you can see how changing the request will change >> the output. If you hard code the response type you are introducing >> unnecessary coupling snd potential future headaches. >> >> Sent from my flux capacitor. Please excuse brevity and any odd >> autocorrect errors. >> On 20/01/2014 1:54 PM, "Greg Keogh" <g...@mira.net> wrote: >> >>> Please ignore previous message as I hit Send instead of Save (bloody >>> Gmail interface!). Here's the correct message: >>> >>> Chaps, after some doodling around I see I can get the Accept values >>> straight out of the Request in the controller's code. That does now seem to >>> be the logical way of choosing the response format. >>> >>> More confusion though ... I tried to write a controller method that >>> returned either plain text or XML, but the samples I've found return >>> different types. Here are the two samples: >>> >>> public HttpActionResult Sample1() >>> return Ok("hello"); >>> >>> public HttpResponseMessage Sample2() >>> return new HttpResponseMessage() { Content = new StringContent("hello") >>> }; >>> >>> The firsts returns <String>hello</String> and the second returns the >>> plain text "hello". But they're different return types and I can't figure >>> out how get one method to return Xml or text. Anyone know how. I'm still >>> searching. >>> >>> Greg K >>> >> >