1

当尝试访问我的托管XML文件的旧版本时,它给了我类似的东西:

DLS-INVALIDVERSION: (err:FOER0000) /company/1448220.xml has no version number 3
in /MarkLogic/dls.xqy, at 1403:6, ...

实际上, /company/1448220_xml_versions中版本 1、2、3 的文件不存在(在这种情况下,假设版本 4 是最新的)。

使用dls(文档管理)功能更新文档时,我运行以下任务:

  1. 检查文档是否被管理
  2. 当它不受管理时,设置为dls:document-manage($uri, fn:false())在 eval 语句中使用管理
  3. dls:document-checkout-update-checkin($uri, $new-doc, "Document update", fn:true())使用eval 语句内部更新文档

到现在为止还挺好。

在获取特定版本的文档时:

  1. dls:document-version($document-uri, xs:unsignedInt($version))

==> 使用 $version := 4 时,它给了我一个有效的文档(这又是最新版本)

==> 当使用 $version := 1 时,它只会给我一个错误,表明版本 1 的文档不存在。

我做错了什么?

我正在使用 MarkLogic 6。

4

1 回答 1

1

您可能尚未使用 设置保留策略dls:retention-rule-insert,并且默认保留规则不保留任何内容(这意味着MarkLogic每次存储新版本时都会删除给定文档的所有旧版本)。请参阅此处的MarkLogic 应用程序开发人员指南中的“定义保留策略”部分。

于 2013-03-12T22:00:40.033 回答