我正在调用返回CAML片段的one of SharePoint's web service APIs。我在互联网上进行了广泛的搜索,但我一直不能想出如何让这个CAML片段呈现为“标准”的HTML,这样我就可以在一个更正常的环境中呈现,比如Plumtree,WLP,Liferay或者除了SharePoint之外的任何其他门户网站。
如果没有办法做到这一点,我想知道为什么微软首先要编写返回SharePoint的CAML服务调用。Web服务是为了实现互操作性,而CAML似乎只在SharePoint中运行的WebPart中有效。致Bill和Steve:这不是互操作性。
如果我不能对返回的CAML做任何事情,我只会调用一个只返回数据的不同的web服务,然后编写我自己的UI。我希望有一条更容易的路。任何建议都将不胜感激。
发布于 2008-10-30 20:53:30
CAML仍然是XML,如前所述,XSLT将能够将其呈现为HTML。CAML的实际嵌套OR/AND结构是另一个问题。
这需要展开CAML结构,并以普通人可以理解的方式显示它。
不幸的是,XSLT语言不适合展开这样的嵌套结构(它没有堆栈)。这是可能的,但我强烈建议您使用另一种语言来解析和展开CAML。
我还没有看到CAML到SQL的转换代码。听起来像是一个很棒的Codeplex项目。
总而言之..。你有点被CAML塞满了。虽然它是XML,但它的结构不适合用于任何其他查询语言。
发布于 2008-10-30 20:17:17
您可以通过XSLT样式表发送CAML以生成HTML或XHTML。
编辑:
考虑你的第一个问题(为什么SharePoint从它的一些web服务返回CAML )……谁知道呢?它可能是为了支持诸如SharePoint designer之类的创作工具。但是,从文档和工具的匮乏中似乎可以清楚地看出,CAML或多或少是一种内部SharePoint。目前,执行CAML到HTML的转换需要以某种方式访问SharePoint中的CAML呈现引擎,或者重新实现它。这两种选择都不具吸引力。
我认为您的结论(调用返回数据的web服务并自己呈现HTML )可能是您最好的选择。
https://stackoverflow.com/questions/251577
复制相似问题