如何通过 CMIS 获取露天数据列表名称?
How get alfresco data List name via CMIS?
这是一个代码示例:
Folder dataLists = (Folder) session.getObjectByPath("/sites/swsdp/dataLists");
Joiner joiner = Joiner.on("\t");
for (Folder cmisObject : (Iterable<Folder>) ((Iterable) dataLists.getChildren())) {
System.out.println(
joiner.join(
cmisObject.getId(),
cmisObject.getName(),
cmisObject.getDescription(),
cmisObject.getClass()
));
System.out.println("==============================");
}
输出为:
a534356f-8dd6-4d9a-8ffb-dc1adb140c01 71824d77-9cd8-44c3-b3e4-dbca7e17dc49 Project issues class org.apache.chemistry.opencmis.client.runtime.FolderImpl
好的,可以通过getDescription()
方法打印描述,但是如何获取列表名称?为什么我得到的是 UUID
而不是 Issue Log
? (Issue Log
是列表在列表列表中的显示方式)。
首先,您应该通过使用节点浏览器导航到数据列表来查看数据列表的结构。这将使 object.
的结构更加清晰。
如果这样做,您将了解到数据列表的名称实际上存储在 cm:title 属性 中。 cm:title 属性定义在一个方面,CMIS调用"secondary types".
如果您使用的是 Alfresco 4.2.x 或更高版本以及 CMIS 1.1 端点,您应该能够使用代码获取 cm:title 属性:
cmisObject.getPropertyValue("cm:title")
此外,如果您更愿意走查询路线,请注意您要查询的类型不是 cm:folder,而是 dl:dataList。您可以使用 cm:titled 方面进行连接,以这种方式获取数据列表标题 属性,如下所示:
SELECT t.cm:title FROM dl:dataList as d join cm:titled as t on d.cmis:objectId = t.cmis:objectId
这是一个代码示例:
Folder dataLists = (Folder) session.getObjectByPath("/sites/swsdp/dataLists");
Joiner joiner = Joiner.on("\t");
for (Folder cmisObject : (Iterable<Folder>) ((Iterable) dataLists.getChildren())) {
System.out.println(
joiner.join(
cmisObject.getId(),
cmisObject.getName(),
cmisObject.getDescription(),
cmisObject.getClass()
));
System.out.println("==============================");
}
输出为:
a534356f-8dd6-4d9a-8ffb-dc1adb140c01 71824d77-9cd8-44c3-b3e4-dbca7e17dc49 Project issues class org.apache.chemistry.opencmis.client.runtime.FolderImpl
好的,可以通过getDescription()
方法打印描述,但是如何获取列表名称?为什么我得到的是 UUID
而不是 Issue Log
? (Issue Log
是列表在列表列表中的显示方式)。
首先,您应该通过使用节点浏览器导航到数据列表来查看数据列表的结构。这将使 object.
的结构更加清晰。如果这样做,您将了解到数据列表的名称实际上存储在 cm:title 属性 中。 cm:title 属性定义在一个方面,CMIS调用"secondary types".
如果您使用的是 Alfresco 4.2.x 或更高版本以及 CMIS 1.1 端点,您应该能够使用代码获取 cm:title 属性:
cmisObject.getPropertyValue("cm:title")
此外,如果您更愿意走查询路线,请注意您要查询的类型不是 cm:folder,而是 dl:dataList。您可以使用 cm:titled 方面进行连接,以这种方式获取数据列表标题 属性,如下所示:
SELECT t.cm:title FROM dl:dataList as d join cm:titled as t on d.cmis:objectId = t.cmis:objectId