2.1.5.3路径
文件夹层次结构可以用规范表示法表示,例如路径。 [...]
pathSegment标记必须不包含'/'字符 它是存储库特定的存储库如何选择pathSegment的值。存储库可能会选择使用cmis:name或内容流文件名为pathSegment标记。
但是,我能够在Documentum 7.1.0000.0146服务器中创建以下文档:
如您所见,cmis:name
和cmis:contentStreamFilename
都包含斜杠。实际上,cmis:contentStreamFilename
似乎变成了cmis:name
(加上扩展名)。
这是Documentum的CMIS实施中的错误吗?
虽然此服务器正确回复"正常"使用getObjectByPath
路径元素的cmis:name
次请求,是否有任何方法可以在上面的屏幕截图中使用getObjectByPath
对象?或getObjectByPath
无法使用此类服务器?
答案 0 :(得分:1)
我确实认为这是Documentum的CMIS实现中的一个错误(意思是,允许斜线成为cmis:name
和cmis:contentStreamFileName
的一部分是一个错误)。我在Apache Chemistry Jira项目中找到this bug report,似乎修复了类似的错误。一些评论揭示了这个问题:
给定对象的以下路径: /a/b/c/d.pdf
路径段标记是“a”,“b”,“c”和“d.pdf”。
getObjectByPath方法确实假设您将传递一个由正斜杠分隔的路径段标记组成的路径。这就是CMIS根据规范定义“路径”的方式。
...和...
存储库可能使用cmis:name作为pathSegment标记,但是,如果存储库不使用cmis:name作为pathSegment标记,则此情况显然会失败。
有一些可能的情况,cmis:name不用作pathSegment标记:
1)使用内容流文件名而不是cmis:name,如规范中所述。
2)存储库支持在文件夹中创建具有相同cmis:name的文档,这意味着不可避免地使用其他值而不是cmis:name作为其pathSegment,因为“每个项目的pathSegment标记必须唯一地标识该项目文件夹“根据规范。
我并不特别了解Documentum,因此在获取对象时是否会显示此错误是一个抛硬币。您是否考虑使用CMIS Workbench运行简单的CMIS查询以使用其中一个属性查找它?如果它有效,我会非常自信(虽然不是100%)它可以与getObjectByPath
一起使用。
答案 1 :(得分:0)
我认为Documentum存储库中的对象名称没有太多限制。 如果要应用业务规则以确保没有使用“/”字符创建对象名称,那么请查看BOF框架。