質問

私は書いています opencmis Alfresco 3.3からいくつかのデータを抽出するベースのアプリケーション。

で正常に動作します 標準 などのCMISプロパティ cmis:name また cmis:contentStreamMimeType;ただし、CMIS Atompubフィードに「Alfresco Extensions」として存在するAlfresco Especificプロパティにアクセスすることはできません。

<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 の代わりにインターフェイス Document, 、そしてそれを呼びます getExtensions() 方法。しかし、documentTypeのインスタンスを取得する方法がわかりません。

どんな助けも本当に感謝しています。

よろしく


編集: Altough 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は、まだすべての拡張機能にアクセスできないのではないかと心配しています。 To Doリストに載っています。今のところ、低レベルの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() ... 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top