在尝试访问我的托管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
(文档管理)功能更新文档时,我运行以下任务:
- 检查文档是否受管理
- 如果未对其进行管理,请设置为使用eval语句中的
dls:document-manage($uri, fn:false())
进行管理- 使用eval声明中的
醇>dls:document-checkout-update-checkin($uri, $new-doc, "Document update", fn:true())
更新文档
到目前为止一切顺利。
在争取获得特定版本的文档时:
- dls:document-version($ document-uri,xs:unsignedInt($ version))
醇>==>当使用$ version:= 4时,它会给我一个有效的文档(反过来是最新的版本)
==>当使用$ version:= 1时,它只是给我一个错误,表明版本1的文档不存在。
我做错了什么?
我正在使用MarkLogic 6.
答案 0 :(得分:1)
您可能没有使用dls:retention-rule-insert
设置保留策略,默认保留规则不保留任何内容(这意味着MarkLogic
每次存储新版本时都会删除给定文档的所有旧版本它)。请参阅 MarkLogic Application Developer's Guide 中的“定义保留政策”部分,here。