gpt4 book ai didi

alfresco - 使用 OpenCMIS 获取 Alfresco 扩展属性

转载 作者:行者123 更新时间:2023-12-01 02:55:51 28 4
gpt4 key购买 nike

我正在写 OpenCMIS基于应用程序,它从 Alfresco 3.3 中提取一些数据。

它适用于标准 CMIS 属性,例如 cmis:namecmis:contentStreamMimeType ;但是,我无法访问 CMIS AtomPub 提要中作为“Alfresco 扩展”的 Alfresco 特定属性:

<cmisra:object>
<cmis:properties>
<cmis:propertyString propertyDefinitionId="cmis:name" displayName="Name" queryName="cmis:name">
<cmis:value>test document</cmis:value>
</cmis:propertyString>
<cmis:propertyString propertyDefinitionId="cmis:contentStreamMimeType" displayName="Content Stream MIME Type" queryName="cmis:contentStreamMimeType">
<cmis:value>text/html</cmis:value>
</cmis:propertyString>
...
<alf:aspects>
...
<alf:properties>
<cmis:propertyString propertyDefinitionId="cm:description" displayName="Description" queryName="cm:description">
<cmis:value>This is just a test document</cmis:value>
</cmis:propertyString>
</alf:properties>
</alf:aspects>
</cmis:properties>
</cmisra:object>

有什么方法可以得到 cm:descripcion 的值,与 OpenCMIS?

我的猜测是我需要使用 DocumentType接口(interface)而不是 Document ,然后调用它的 getExtensions()方法。但我不知道如何获取 DocumentType 的实例。

任何帮助将非常感激。

问候

编辑:尽管 Florian 的回答已经为我解决了,但我刚刚意识到我也可以使用 CMIS SQL 获取这些属性的值:
select d.*, t.*, a.*
from cmis:document d
join cm:titled t on d.cmis:objectid = t.cmis:objectid
join cm:author a on d.cmis:objectid = a.cmis:objectid
where t.cm:description like ...

最佳答案

恐怕 OpenCMIS 高级 API 还不能访问所有扩展。它在我们的待办事项 list 上。现在,您必须使用低级 API。
像这样的东西应该工作:

ObjectData doc = session.getBinding().getObjectService().getObject(...);
org.w3c.dom.Node domNode = (org.w3c.dom.Node) doc.getProperties().getExtensions().get(0); // <alf:aspects>
domNode.getFirstChild() ...

关于alfresco - 使用 OpenCMIS 获取 Alfresco 扩展属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2998364/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com