2012-05-28 2 views
0

Я создаю XML, используя XDocument в C#. Все работает отлично, за исключением того, я всегда получаю автогенерируемой строкуXDocument содержит строку

XDocument doc = new XDocument(
       new XDeclaration("1.0", "UTF-8", "yes"), 
       new XElement(aw+"ProviderUpdate", 
         //... more more here 

        ) 
       ); 
return doc.ToString(); 

Это всегда возвращает что-то вроде этого: Как удалить?

<string xmlns="urn:Microsoft.Search.Registration.Response"> 
<ProviderUpdate xmlns="urn:Microsoft.Search.Registration.Response"> 
... 
</ProviderUpdate> 
</string> 

Я ожидал, что будет что-то вроде этого:

<?xml version="1.0" encoding="utf-8"?> 
<ProviderUpdate xmlns="urn:Microsoft.Search.Registration.Response"> 
... 
</ProviderUpdate> 

Это определяется в верхней части моего файла:

[WebService(Namespace = "urn:Microsoft.Search.Registration.Response")] 

Но это не делает ничего больше, чем Xmlns изменения к правильному значению ,

ответ

0

Элемент string - это контейнер для значения, которое вы возвращаете из веб-службы. Вы не можете вернуть данные, которые не находятся внутри элемента.

Если вы хотите вернуть свой собственный XML-код из веб-службы, вы не должны использовать встроенную фреймворк для создания веб-службы, а обработчик HTTP, чтобы вы могли возвращать ответ напрямую, а не обертывать внутри предопределенное сообщение SOAP.