Question

I have a WCF service that is returning an XElement, this is working fine however I would like it to include the XML Declaration in the response:

<?xml version="1.0" encoding="utf-8"?>

The client side is not something that I can change and is reporting a "Result is not XML" The only other differences between the response of my HTTP result is the content type of my WCF service:

Content-Type: application/xml; charset=utf-8

vs.

Content-Type: text/xml; charset=utf-8

I assume the "Result is not XML" is being caused by the missing XML Declaration. How is it possible to add the XML Declaration to the XElement response? I thought a MessageFormatter might be able fix this, however I have no idea where to start.

Was it helpful?

Solution

See XDocument Class Overview for a quick sample of how to add the xml declaration to your output.

Though I have to agree with @John, its unlikely the missing xml declaration is the problem unless the client is manually validating the XML as text (which would be a silly thing to do but I've seen it done) and is assuming that any text missing the xml declaration must not be valid xml.

If the client is a .NET client, then enable WCF message logging and verify what the client is receiving. If the client is not a .NET client, then use Netmon or Wireshark to inspect the traffic to validate payload.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top