Xml 将MarkLogic xcc cts查询转换为post cts查询

Xml 将MarkLogic xcc cts查询转换为post cts查询,xml,rest,marklogic,marklogic-9,Xml,Rest,Marklogic,Marklogic 9,Marklogic 9及以上版本不再支持.NET应用程序的xcc连接,而是应使用rest api 我一直在开发一个POC,并通过一个RESTAPI为每个db创建RESTAPI实例来公开我的db实例。我还能够使用GET进行简单的搜索查询。我还使用了PUT和DELETE 我的问题是将现有的140多个cts查询转换为xml正文。这里有一个示例,但使用了一个简单的cts查询,我想获得一些关于将更复杂的查询转换为xml体的帮助,这样我就可以针对我创建的api使用这些查询 例如: 如何用xml编写这个cts

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

我一直在开发一个POC,并通过一个RESTAPI为每个db创建RESTAPI实例来公开我的db实例。我还能够使用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>

{{
cts:search(集合('Records{0}')/Record,
cts:和查询((
元素范围查询(xs:QName('CreatedOn'),'>=',xs:dateTime('{1}'),

cts:element-range-query(xs:QName('CreatedOn'),“您显示的是一个搜索,不仅仅是
cts:query
,但是如果您只想将
cts:query
序列化为XML,您可以使用如下技巧:
{此处的查询构造函数}

例如:

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

另一种可能(可能与Dave Cassel的建议太相似)是使用REST客户端API eval端点。您可以使用它来执行特别的XQuery(或服务器端JavaScript),就像启用了XCC一样。看看这个:

您显示的是一个搜索,不仅仅是
cts:query
,但是如果您只想将
cts:query
序列化为XML,您可以使用如下技巧:
{此处的查询构造函数}

例如:

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

另一种可能(可能与Dave Cassel的建议太相似)是使用REST客户端API eval端点。您可以使用它来执行特别的XQuery(或服务器端JavaScript),就像启用了XCC一样。看看这个:

如果您已经有了要执行的代码片段,那么将它们保存为特定于应用程序的模块数据库中的.xqy文本文档,并通过HTTP调用它们如何。您不需要使用REST api,尽管它带来了一些便利,在cas中可能有用,也可能无用e、 。感谢您的回答,我已经考虑过这个选项,但这不是我在这里想要实现的。如果您已经有了要执行的代码片段,那么将它们保存为特定于应用程序的模块数据库中的.xqy文本文档,并通过HTTP调用调用它们如何?您不需要使用REST api,尽管它确实随som提供e对您的情况可能有用,也可能无效的便利1.谢谢您的回答,我已经考虑过这个选择,但这不是我在这里想要实现的。