2

我正在调用返回 CAML 片段的 SharePoint 的 Web 服务 API之一。我已经在互联网上进行了广泛的搜索,但我一直无法弄清楚如何使这个 CAML 片段呈现为“正常”的 HTML,我可以在 Plumtree、WLP、Liferay 或任何其他门户等更健全的环境中呈现除了 SharePoint。

如果没有办法做到这一点,我想知道为什么微软首先编写了返回 CAML 的 SharePoint Web 服务调用。Web 服务用于互操作性,似乎 CAML 仅在 SharePoint 中运行的 WebPart 中有效。[比尔和史蒂夫注意:这不是互操作性。]

如果我对返回的 CAML 无能为力,我将调用一个仅返回数据的不同 Web 服务,然后编写我自己的 UI。我希望有一条更简单的道路。任何建议将不胜感激。

4

2 回答 2

5

CAML 仍然是 XML,并且如前所述,XSLT 将能够将其呈现为 HTML。CAML 的实际嵌套 OR/AND 结构完全是另一个问题。

这将需要展开 CAML 结构并以普通人理解的方式显示它。

不幸的是,XSLT 语言不适合展开这样的嵌套结构(它没有堆栈)。这是可能的,但完成后我强烈建议使用另一种语言来解析和展开 CAML。

我还没有看到 CAML 到 SQL 的转换代码。听起来像是一个很棒的 Codeplex 项目。

所以总而言之......你有点塞满了 CAML。虽然它是 XML,但它的结构不适合在任何其他查询语言中使用。

于 2008-10-30T20:53:30.450 回答
4

您可以通过 XSLT 样式表发送 CAML 以生成 HTML 或 XHTML。

编辑:

考虑您的第一个问题(为什么 SharePoint 从其某些 Web 服务返回 CAML)...谁知道呢?它可能用于支持创作工具,例如 SharePoint 设计器。但从缺乏文档和工具看来,CAML 或多或少是内部 SharePoint 的东西。目前,执行 CAML 到 HTML 的转换需要以某种方式访问​​ SharePoint 中的 CAML 呈现引擎,或者重新实现它。这两种选择都没有吸引力。

我认为您的结论(调用数据返回 Web 服务并自己呈现 HTML)可能是您最好的选择。

于 2008-10-30T20:17:17.353 回答