SOAP查询标准

时间:2009-06-13 00:43:31

标签: wcf soap xsd standards

是否有用于描述实体查询的标准认可的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架构?

启发我的是Microsoft CRM的FetchXML:

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

是否有任何Web服务标准组织为Web服务的查询定义了架构?还有其他建议吗?

0 个答案:

没有答案