marklogic java客户端api扩展xincludes

marklogic java客户端api扩展xincludes,marklogic,marklogic-8,Marklogic,Marklogic 8,我正在寻找一种使用marklogic java客户端api扩展XML节点的方法,但未能从api文档中找到有关此主题的任何信息 扩展xinclude节点的示例xquery: import module namespace xinc = "http://marklogic.com/xinclude" at "/MarkLogic/xinclude/xinclude.xqy"; xinc:node-expand(fn:doc("http://my.app.org/contact/234")) 当使用

我正在寻找一种使用marklogic java客户端api扩展XML节点的方法,但未能从api文档中找到有关此主题的任何信息

扩展xinclude节点的示例xquery:

import module namespace xinc = "http://marklogic.com/xinclude" at "/MarkLogic/xinclude/xinclude.xqy";
xinc:node-expand(fn:doc("http://my.app.org/contact/234"))
当使用java客户端api
XMLDocumentManager从marklogic数据库读取文档时,是否可以执行“节点扩展”http://my.app.org/contact/234”

样本文件:

<contact>
    <photo>
        <xi:include href="http://my.app.org/files/123" xpointer="xpath(//file/content/text())" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
    </photo>
</contact>


谢谢

一种方法可能是创建一个命名的
expandXInclude.xqy
,并在阅读时使用它

XMLDocumentManager.read("http://my.app.org/contact/234", new DOMHandle(), new ServerTransform("expandXInclude.xqy"));
可以使用ml gradle创建和部署转换。请参见一个基本示例。转换可能很简单,如下所示:

xquery version "1.0-ml";

module namespace transform = "http://marklogic.com/rest-api/transform/sample";
import module namespace xinc = "http://marklogic.com/xinclude" at "/MarkLogic/xinclude/xinclude.xqy";

declare function transform(
        $context as map:map,
        $params as map:map,
        $content as document-node()
) as document-node()
{
    xinc:node-expand($content)
};