Вы можете использовать службу REST WCF и легко возвращать свой XML.Просто создайте проект, используя шаблон проекта Visual Studio, найденный здесь .Если у вас уже определены классы, которые считывают данные из базы данных MySQL, вы можете вернуть их и сделать так, чтобы WCF их сериализовал для вас.Таким образом, вам не нужно использовать XDoc / XElement для сборки XML.Метод и класс обслуживания будут выглядеть примерно так:
[ServiceContract]
[XmlSerializerFormat]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Single)]
public class APIService
{
[WebGet(UriTemplate = "{key}", ResponseFormat = WebMessageFormat.Xml)]
public APIData GetAPIData(string key)
{
// build apiData object from DB using "key"
return apiData
}
[WebGet(UriTemplate = "{key}/news", ResponseFormat = WebMessageFormat.Xml)]
public APINewsData GetAPINewsData(string key)
{
// build apiNewsData object from DB using "key"
return apiNewsData
}
}
Если вы используете класс XmlSerializer (указав атрибут [xmlSerializerFormat], как указано выше) вместо класса DataContractSerializer (сериализатор WCF по умолчанию), вы можете больше контролировать, какобратный XML выглядит.Но это медленнее, чем вариант по умолчанию.Подробнее: http://msdn.microsoft.com/en-us/library/ms733901.aspx