0

Marklogic 9 及更高版本不再支持 .NET 应用程序的 xcc 连接,而是应使用 rest api。

我一直在研究 POC,并通过 REST API 公开我的数据库实例,为每个数据库创建 REST API 实例。我还能够使用 GET 进行简单的搜索查询。我也使用了 PUT 和 DELETE。

我的问题是将现有的 140+ cts 查询转换为 xml 正文。这里有一个示例,但使用了一个简单的 cts 查询,我希望在将更复杂的查询转换为 xml 正文方面得到一些帮助 - 所以我可以将这些查询用于我创建的 api。

例如:

我怎么能在 xml 中编写这个 cts 查询?

<ArrayOfRecord>
{{
cts:search(collection('Records{0}')/Record,
cts:and-query((
cts:element-range-query(xs:QName('CreatedOn'), '>=', xs:dateTime('{1}')),
cts:element-range-query(xs:QName('CreatedOn'), '<=', xs:dateTime('{2}')),
cts:path-range-query('/Record/IsLatestVersion', '=', 
'{3}')additionalQueries)))   
}}
</ArrayOfRecord>

谢谢

4

1 回答 1

2

您展示的是搜索,而不仅仅是 . cts:query,但如果您只想将 a 序列化为cts:queryXML,您可以使用这样的技巧: <wrapper>{your query constructor here}</wrapper>.

例如:

xquery version "1.0-ml";
<wrapper>{cts:word-query("foo")}</wrapper>/*

另一种可能(可能与 Dave Cassel 对您的建议过于相似)是使用 REST Client API eval 端点。您可以使用它来执行即席 XQuery(或服务器端 JavaScript),就像启用 XCC 一样。看看这个:http ://docs.marklogic.com/REST/POST/v1/eval

于 2018-01-31T18:53:34.940 回答