Стандарты для запросов через SOAP - PullRequest
2 голосов
/ 13 июня 2009

Существует ли стандартизированный формат XML для описания запросов сущностей?

Справочная информация. Я планирую создать библиотеку для написания запросов через службы WCF.

На клиенте я хочу иметь возможность написать (C #):

var customers = from c in service.Customers
                where c.Name.StartsWith("P")
                order by c.Name
                select c;

Я буду использовать настраиваемый сериализатор, чтобы преобразовать запрос LINQ в формат XML для отправки как части тела SOAP на сервер. Может быть, это будет выглядеть примерно так:

<query>
  <fetch entity="Customer">
     <all-attributes />
     <filter type="and">
       <condition attribute="Name" operator="starts-with" value="P" />
     </filter>
     <order-by attribute="Name" />
  </fetch>
</query>

На стороне сервера операция будет выглядеть примерно так:

public ResultSet Query(Query query)
{
    using (var dataContext = new AdventureWorksDataContext()) 
    {
        var expression = query.ToExpressionTree();
        var sqlQuery = dataContext.CreateQuery(expression);
        return ResultSet.From(sqlQuery);
    }
}

Поскольку запрос - это всего лишь XML, я надеюсь, что другие клиенты также смогут использовать его достаточно легко.

У меня вопрос: есть ли уже схема XML, описывающая подобные запросы?

Меня вдохновил FetchXML от Microsoft CRM:

http://msdn.microsoft.com/en-us/library/ms936573.aspx

Определили ли какие-либо органы по стандартизации веб-служб схему запросов к веб-службам? Любые другие предложения?

...