链式提供商

时间:2017-01-10 16:40:03

标签: f# type-providers

我想知道是否可以从SqlDataProvider提供的数据创建XmlProvider。

天真就是这样的:

type sql = SqlDataProvider<...>

let xml =
    query {
      for item in sql.GetDataContext().Main.Items do
      select item.XmlData
      head
    }

type xmlType = XmlProvider<xml>

当然这会失败,因为xml不是文字。

我很好奇这是否可能。

1 个答案:

答案 0 :(得分:1)

简短的回答是:是的。

然后是ifs和buts:

鉴于返回的xml是结构化的(如:每次大约相等),那么提供一个文字的例子就可以了。

然后可以解析数据库中的数据,如:

let someXmlDataNowType = xmlType.Parse(xml)

这可能不是您想要或询问的内容,但简短的回答是:否; - )

如果您对不同的XML有很多查询,那么我可以编写一些代码来生成某些文件中的不同XML,甚至可以自动编写f#...