ヘッダーをスキップ
Oracle® Fusion Middleware Content Management REST Service開発者ガイド
11g Release 1 (11.1.1.6.0)
B61393-03
 

 

Oracle® Fusion Middleware

Content Management REST Service開発者ガイド

11gリリース1 (11.1.1.6.0)

B61393-03(原本部品番号:E15813-07)

2011年11月

OASIS CMIS(Content Management Interoperability Service)技術委員会は、Enterprise Content Management(ECM)システムの相互運用性の向上を可能にするWebサービス・インタフェース仕様の標準化を目指して活動しています。詳細は、OASISのCMISサイト(http://www.oasis-open.org/committees/cmis/)を参照してください。

Content Management REST Serviceは、CMIS RESTful AtomPubサーバー・バインディングを使用して、アプリケーション内に構成されたOracle Content Serverのリポジトリにアクセスするサーバーを提供します。

このガイドはOASIS CMIS仕様を補完するためのものであり、Content Management REST Serviceの具体的な実装について詳しく説明します。まず最初に、すべてのユーザーはOASIS CMIS仕様を確認する必要があります。このガイドは、http://docs.oasis-open.org/cmis/CMIS/v1.0/cmis-spec-v1.0.htmlで参照可能なCMIS (Content Management Interoperability Service)バージョン1.0を参照しています。

この仕様には、ドメイン・モデルと2つのサーバー・バインディングが含まれています。前述のように、Content Management REST Serviceでは現在RESTful AtomPub bindingバインディングのみが実装されます。AtomおよびAtomPubはレスポンスのデフォルト・フォーマットであるため、ご使用に際してはこれらを十分理解していることが必要です。


注意:

CMISは、広範囲の異なるコンテンツ・システムのための最低限の共通の基準を提供します。これは、Oracle WebCenter Content(以前はOracle UCMと呼ばれていました)の機能と連携していません。利用可能な機能の詳細は、Content Management REST Serviceのサービス・ドキュメントを参照してください。

このガイドでは、次の内容について説明します。

CMIS第I部 - ドメイン・モデル

CMIS仕様の2項: 「Domain Model」では、1つ以上のコンテンツ管理リポジトリとともに動作するアプリケーションで使用可能なドメイン・モデルを定義しています。

データ・モデル

Content Management REST Serviceのサービス・ドキュメントは、AtomPubワークスペースで構成されています。ワークスペースはそれぞれ、コンテンツ接続にマッピングされます(Content Management REST Serviceでサポートされているのは、Oracle WebCenter Contentリポジトリのみです)。サービス・ドキュメントの詳細は、次項「CMIS第II部: RESTful AtomPubバインディング」を参照してください。

リポジトリ

このリリースでは、2.1.1項にリストされているオプション機能の一部は実装されていません。今後のリリースで、バージョニング、ACL、ポリシー、リレーションシップ、変更ログ、フォルダの下位要素/ツリーおよびレンディションの実装が検討される予定です。

Content Management REST Service実装には、具体的に次のオプション機能が含まれています。

capabilityGetDescendants = true
capabilityGetFolderTree = false 
capabilityContentStreamUpdatability = anytime 
capabilityChanges = none
capabilityRenditions = none 
capabilityMultifiling = false 
capabilityUnfiling = false 
capabilityVersionSpecificFiling = false 
capabilityPWCUpdateable = false 
capabilityPWCSearchable = false 
capabilityAllVersionsSearchable = false 
capabilityJoin = none    
capabilityACL = none
capabilityQuery = none, metadataonly, or both combined

オブジェクト

Content Management REST Serviceでは、ドキュメント・オブジェクトおよびフォルダ・オブジェクトがサポートされています。CMISでは、ノードのcmis:baseTypeIdcmis:folderまたはcmis:documentとなります。また、タイプのcmis:baseIdcmis:folderまたはcmis:documentとなります。

オブジェクト型

CMISオブジェクト型には、Oracle WebCenter Content: Content Serverメタデータ・フィールド定義および Oracle WebCenter ContentのSite Studioリージョン定義からマップされたフィールドが含まれています。

Oracle WebCenter Contentメタデータ・フィールドからCMISプロパティ定義へのマッピングは、次のとおりです。

表1 Content Serverメタデータのマッピング

Oracle WebCenter Contentメタデータ CMISプロパティ定義

選択リストを検証して構成されたオプション・リスト、およびYesNoViewビューやTrueFalseViewビューを持つTEXTメタデータ・フィールド

cmis:propertyBoolean

他のすべてのTEXTメタデータ・フィールド

cmis:propertyString

LONG TEXTメタデータ・フィールド

cmis:propertyString

MEMOメタデータ・フィールド

cmis:propertyString

INTEGERメタデータ・フィールド

cmis:propertyInteger

DATEメタデータ・フィールド

cmis:propertyDateTime

DECIMALメタデータ・フィールド

cmis:propertyDecimal


Site Studioリージョン定義フィールドからCMISプロパティ定義へのマッピングは、次のとおりです。

表2 Site Studioリージョン定義のマッピング

Site Studioリージョン定義 CMISプロパティ定義

イメージ要素定義フィールド

cmis:propertyString

WYSIWYG要素定義フィールド

cmis:propertyString

プレーン・テキスト要素定義フィールド

cmis:propertyString

静的リスト要素定義フィールド

cmis:propertyString


ドキュメント・オブジェクト

ドキュメント・オブジェクトは、リポジトリによって管理される基本的な情報エンティティです。CMIS仕様で定義されているように、ドキュメント・オブジェクトは、バージョニング可能、ファイリング可能、問合せ可能、制御可能およびACLControl可能にすることができます。前述のように、このリリースのContent Management REST Serviceでは、バージョニング、マルチファイリング、ポリシーまたはACLをサポートしていません。

あるNodeが FolderではなくDocumentであると判定された場合、その子ノードはCMISを介しては公開されません。CMISでは、各Documentオブジェクトは1つのコンテンツ・ストリームに関連付けられており、WebCenter CMIS RESTでは、このストリームは、そのドキュメントに関連付けられたOracle WebCenter Content: Content Serverバイナリです。

フォルダ・オブジェクト

CMIS仕様では、フォルダ・オブジェクトはコンテンツ・ストリームを持たず、バージョニング可能ではありません。ノードがフォルダであると判断されると、Content Management REST Serviceはそのノードをこの方法で公開します(Oracle WebCenter Contentでは、フォルダはコンテンツ・ストリームを持たず、バージョニング可能ではありません)。

リレーションシップ・オブジェクト

CMIS仕様の2.1.6項: 「Relationship Object」は適用できません。Content Management REST Serviceはこのリリースのリレーションシップをサポートしていません。

ポリシー・オブジェクト

CMIS仕様の2.1.7項: 「Policy Object」は適用できません。Content Management REST Serviceはこのリリースのポリシーをサポートしていません。

アクセス制御

CMIS仕様の2.1.8項: 「Access Control」は適用できません。Content Management REST ServiceはこのリリースのACLをサポートしていません。許容されるアクションの詳細は、次の項を参照してください。

AllowableActionsマッピング

この項では、オブジェクトに対して定義される許容可能なアクションを一覧表示します。このリリースの実装内容により、すべてのオブジェクトに対してハードコードされているアクションも一部あります。その他の許容可能なアクションは、リポジトリ構成に基づいて設定されます。

  • canGetObjectRelationships = false

  • canCreateRelationship = false

  • canGetDescendants = false

  • canGetFolderTree = false

  • canCheckOut = false(バージョニング)

  • canCancelCheckOut = false(バージョニング)

  • canCheckIn = false(バージョニング)

  • canAddObjectToFolder = false(マルチファイリング)

  • canRemoveObjectFromFolder = false(アンファイリング/マルチファイリング)

  • canApplyPolicy = false

  • canGetAppliedPolicies = false

  • canRemovePolicy = false

  • canCreatePolicy = false

  • canApplyACL = false

  • canGetACL = false

  • canGetRenditions = false

  • canDeleteTree = true

  • canGetAllVersions = false(バージョニング)

バージョニング

CMIS仕様の2.1.9項: 「Versioning」は適用できません。Content Management REST Serviceはこのリリースのバージョニングをサポートしていません。

問合せ

CMIS問合せは結果セットを返します。結果セットの各エントリ・オブジェクトには、問合せで指定されたプロパティのみが含められます。Content Management REST Serviceでは問合せ内でのJOINをサポートしていないため、各結果エントリは単一ノードからのプロパティを表します。共通の検索では、"SELECT * FROM …"などの問合せが使用されます。

  • FROM句は検索対象のコンテンツ・タイプを指定します。

    • FROM cmis:document ==> 任意のOracle WebCenter Contentドキュメント(例: IDC:GlobalProfile)

    • FROM cmis:document ==> 任意のOracle WebCenter Contentフォルダ(例: IDC:Folder)

    • FROM typeQueryName ==> タイプが問合せ可能であるかぎり、そのタイプのcmis queryName(例: ora:t:IDC!;GlobalProfile)

  • cmis:document and cmis:folderタイプは常に問合せ可能です。その他のタイプは、リポジトリ内で検索可能であれば問合せ可能です。

  • IN_FOLDER述語は、指定されたフォルダID(結果の親)として実装されます。

  • IN_TREE述語は、指定されたフォルダID(結果のフォルダ構造内の親)として実装されます。

  • CONTAINS() 述語は、フルテキスト問合せ表現の演算子です。

  • cmis:documentおよびcmis:folderのプロパティは、それに対応するOracle WebCenter Contentシステム・プロパティが検索可能かつソート可能であれば、問合せ可能および順序付け可能となります。システム・プロパティは次のようにマッピングされます。

    • cmis:createdBy ==> dDocAuthor

    • cmis:lastModifiedBy ==> dDocCreator

    • cmis:creationDate ==> dCreateDate

    • cmis:lastModificationDate ==> dLastModifiedDate(10gでは、フォルダはdLastModifiedDateにマップされ、ドキュメントはdCreateDateにマップされます)

    • cmis:name ==> dOriginalName(ドキュメント用)またはdCollectionName(フォルダ用)

    • cmis:contentStreamFileName ==> dOriginalName

    • cmis:contentStreamLength ==> VaultFileSize

    • cmis:contentStreamMimeType ==> dFormat

    • cmis:objectId ==> dDocName

    • cmis:objectTypeId ==> Oracle WebCenter Contentプロファイル名またはSiteStudioリージョン定義名


      注意:

      cmis:objectTypeIdが順序付け可能となることはありません。

    • cmis:path ==> IN_FOLDERまたはIN_TREE述語を使用してください。


    注意:

    CMIS問合せ内で表示できない機能が含まれるリポジトリもあれば、問合せ内で使用可能なCMIS問合せ述語(または述語の組合せ)が制限されるような制約を持つリポジトリもあります。前述のマッピングを使用して、リポジトリの機能と制約によるCMIS問合せでの考慮事項を確認してください。

  • ネストされたプロパティは、問合せ可能でも順序付け可能でもありません。

  • Content Management REST Serviceの実装では、Oracle WebCenter Contentでソート可能と指定されるプロパティが順序付け可能と出力されます。このリストには、実際にはOracle WebCenter Contentでソートできないプロパティが含まれていることがあります。Oracle WebCenter Contentでソート・エラーと出力されるフィールドに対して順序付けを可能にするには、次の手順に従って、指定したOracle WebCenter Contentフィールドをソート可能にします。

    1. 「管理」に移動して、「管理アプレット」を開きます。

    2. Configuration Managerアプレットを開いて、「拡張検索のデザイン」をクリックします。

    3. 順序付け可能にするフィールドを編集し、「ソート可能」を選択します。

    4. 変更内容を保存して「管理」を修了します。

次の表は、具体的な検索の注意事項と推奨事項を示します。問合せの例は、Content Management REST Serviceのベスト・プラクティスおよび例を参照してください。

表3 検索に関する注意事項と推奨事項

注意事項 推奨事項

Oracle WebCenter Contentでは、null値または非null値での問合せに対するサポートが限定的です。

検索動作での相違に注意して、サポート対象外の基準に左右される検索表現式を記述しないでください。

フォルダの再帰的検索は、Oracle WebCenter Contentではサポートされていませんが、Oracle WebCenter Contentサーバーで右記のように構成されている場合、ドキュメント用にサポートされます。

検索範囲には、ドキュメントのみを含めるようにしてください(select * from cmis:documentのようなselect句を追加してください)。

検索オブジェクト上に検索パスを設定します(where IN_TREE('/StellentRepository/IDC:Folder/2のようなwhere句を追加してください)。

folders_g CollectiveSearchRecursiveContentとこれに関連する設定(Oracle WebCenter Content config.cfgファイルのCollectionMaxBranchなど)を構成します。

多値プロパティの演算子はサブストリング・マッチを実行します。これは、ANY <multiValuedQueryName> IN (<literal>, ...)または<literal> = ANY < multiValuedQueryName>に適用されます。Oracle WebCenter Contentでは、オプション・リスト付きのフィールドに値をカンマ区切り形式で格納します。たとえば、A、BおよびCという値がある場合には、「A, B, C」と表現されます。「A, B」に対してANY検索またはANY IN検索を使用すると、このアイテムが見つかります。

検索動作での相違に注意して、必要以上のマッチ数を検出しないようにするために、Configuration Managerアプレット内のOracle WebCenter Contentオプション・リスト・デリミタ文字を変更することを考慮してください。

フォルダ(FROM cmis:folder)の検索時には、各基準に対して最大1つの値を指定できます。より選択的な問合せを実行するために、各基準は他の基準と論理的にANDでつながれたものとみなされます。フォルダの検索時には、ORまたはNOT演算子のサポートはありません。

Oracle WebCenter Contentフォルダ検索では、ORおよびNOTを使用しないでください。

すべてのプロパティが検索可能というわけではなく、検索で検索可能でないプロパティに遭遇した場合はParseExceptionが返されます(400エラー)。

Oracle WebCenter Content Configuration Manager情報フィールドのセクションを調べるか、ContentType定義を見直すことで、指定のコンテンツ・タイプに対してどのプロパティが検索可能か理解してください。isSearchableフィールド設定のURLを調べます。

URLSの例:

http://myContentServer/idc/idcplg?IdcService=VCR_GET_CONTENT_TYPE&vcrContentType=IDC:Folder&IsSoap=1

または、CMISを介して固有のタイプを調べます。

すべてのContentTypeが検索可能というわけではありません。検索できないContentTypesに対して検索を試みると、例外がスローされます。たとえば、IDC:FileReferenceは検索できません。

すべてのContentTypeが検索可能というわけではないことに注意してください。

String多値プロパティのみ検索可能です。

String以外の多値プロパティ・タイプの検索を指定しないでください。

LONGプロパティにはNOT演算子を使用できません。

サポートされている構文を使用して問合せを再構成してください。

ソート基準は1つしかサポートされていません。

2つ以上のソート基準を使用する検索表現式を記述しないでください。

ソートまたは索引の付いていないフィールドは、結果的に例外となります。

索引の付いていないフィールドで検索を実行すると、DRG-10837: セクションdStatusは存在しませんなどの例外コードが埋め込まれているため例外がスローされます。

ソート基準としてそれらを使用する前に、どのフィールドに索引が付けられているのか把握してください。isSortableフィールド設定のURLを調べます。

URLの例: http://myContentServer/idc/idcplg?IdcService=GET_ADVANCED_SEARCH_OPTIONS&IsSoap=1

または、CMISでタイプを調べて、プロパティ定義が問合せ可能かどうかを確認します。

検索問合せでは空の値は許可されていません。

cmis:name != ''.のような基準を使用しないでください。

Notequals演算子は非文字列のプロパティではサポートされません。

検索動作での相違に注意して、サポート対象外の基準に左右される検索表現式を記述しないでください。

同じOracle WebCenter Contentリポジトリでの複数の検索パスはサポートされません。

検索動作での相違に注意して、サポート対象外の基準に左右される検索表現式を記述しないでください。

ドキュメントの検索時には、Oracle WebCenter Contentが適切に構成されていれば再帰的検索(フォルダ・ツリー検索)がサポートされます。

検索パスが設定されていない場合には、リポジトリ内のすべてのドキュメント(ファイル済と未ファイル分の両方)が検索されます。

コンテンツ・サーバーのfolders_g CollectionSearchRecursiveContentとこれに関連する設定(Oracle WebCenter Content config.cfgファイルのCollectionMaxBranchなど)を構成します。これらの設定は、Oracle WebCenter Contentドキュメントで記述されます。フォルダ・ツリーの範囲に絞ってドキュメント検索を実行するには、IN_TREE述語を使用します。

ドキュメントの検索でLIKE演算子を使用する場合、末尾のパス要素でワイルドカード(%)のみサポートされています。

検索動作での相違に注意して、サポート対象外の基準に左右される検索表現式を記述しないでください。

ドキュメント(select * from cmis:document)を検索する場合、複数のコンテンツ・タイプに検索を限定することはできません。たとえば、select * from IDC:MyProfile, IDC:AnotherProfileはサポートされません。これは、コンテンツ・タイプが明らかに複数でありJOINSがサポートされていないためです。

検索を複数のコンテンツ・タイプに限定する必要がある場合は、複数の問合せを出して同じ動作を実現します。すべてのタイプを横断的に検索する場合は、select文内でcmis:documentを使用します。

cmis:objectTypeIdが問合せで指定されている場合、Oracle WebCenter Content検索ではORはサポートされません。他のパラメータはこの基準とANDでつながれたものとみなされますが、ORはサポートされません。

この機能が必要がある場合は、複数の問合せを発行して同じ動作を実現します。

cmis:objectTypeId基準は、 ==!=、およびlikeのみサポートしています。!=の使用はフォルダを除外するケースに限られています(select * from cmis:documentの追加と同じ動作になります)。

cmis:objectTypeId基準を使用するときは、有効な演算子に注意します。

問合せは、Oracle WebCenter Content検索エンジンの選択に応じて大文字と小文字を区別する場合があります。

Oracle WebCenter Content検索エンジンの選択は、大文字と小文字を区別するかどうかに影響することがあるので注意してください。メタデータがOracleTextSearchを使用して検索すると、検索エンジンは一般に大文字と小文字を区別しません。メタデータがDATABASE.FULLTEXTを使用して検索すると、検索エンジンは一般に大文字と小文字を区別します。メタデータ・フィールドにより正確な動作が異なることがあります。


サービス

CMIS仕様の2.2項: 「Services」で説明されているメソッドは、Content Management REST Serviceによって実装されています。具体的な実装の詳細は、次項「CMIS第II部: RESTful AtomPubバインディング」で説明します。

CMIS第II部: RESTful AtomPubバインディング

CMIS仕様の3項: 「RESTful AtomPub Binding」では、1つ以上のコンテンツ管理リポジトリとともに動作するアプリケーションで使用可能なAtomPubに基づいた仕様を定義しています。RESTサービスはWebCenter Portal: Spacesインスタンスで使用できます。詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal開発者ガイド』を参照してください。

サービス・ドキュメント

リポジトリのナビゲーションはすべて、AtomPubサービス・ドキュメントから開始されます。リポジトリ内のすべてのアクセス可能コンテンツの検出は、このドキュメントからコレクション、リンクおよびテンプレートを介して行うことができます。CMIS Webアプリケーションのコンテキスト・ルートからのサービス・ドキュメントのURIは、/rest/cmis/repositoryです。

したがって、前述の例のようにアプリケーションがlibrary-context-root-overrideとともにデプロイされている場合、サービス・ドキュメントにはhttp://hostname:port/rest/cmis/repositoryというURLを介してアクセスします。


注意:

RESTアプリケーションはWebCenter Spacesアプリケーションでのみ利用でき、カスタムのポータル・アプリケーション開発では利用できません。ただし、ポータル・アプリケーションからHTTPリクエストを実行すれば、Spacesアプリケーションで利用可能なRESTおよびCMISリソースにアクセスできます。目的とする関連コンテンツへの接続でSpacesアプリケーションが構成されていることを確認する必要があります。

デフォルトでは、このドキュメントにはOracle WebCenter Contentの構成済のリポジトリごとにワークスペースが含まれています(Oracle WebCenter ContentリポジトリのみがOracle WebCenter PortalのCMIS RESTでサポートされています)。単一リポジトリのサービス・ドキュメントを取得するには、CMIS AtomPubバインディング仕様の3.6.2.1項で説明されているように、repositoryId問合せパラメータを使用します。

前項で説明したように、サービス・ドキュメントはAtomPubワークスペースから構成されます。各ワークスペースは Oracle WebCenter Portal Content Server接続にマッピングされます。

ユーザーはサービス・ドキュメントから開始して、予測されたパスを使用してコレクションやリンクにナビゲートすることが想定されるためです。コレクションのリンクとタイトルおよびタイプとの関係はすべてCMIS仕様で定義されているため、一般的にはクライアント実装によるナビゲートが可能です。また、パスによるオブジェクトへのアクセス、IDによるオブジェクトへのアクセス、IDによるタイプへのアクセス、および問合せへのアクセスを簡単に行うためにリポジトリごとに定義されたテンプレートもあります。パスおよびIDのテンプレートでの変数の書式を確認するには、フォルダおよびドキュメントのエントリを参照してください。

レスポンス・フォーマット

CMIS仕様の3.1.3項: 「Response Formats」では、Acceptヘッダー内に表示されているサポート対象のメディア・タイプでオーバーライドされないかぎり、デフォルトでAtom/AtomPubスタイル・フォーマットが返されることが示されています。

一般的なAtomPubフィード・リーダーを使用すると、CMIS RESTサーバーにより返されたフィードをウォークスルーできます。すべてのCMIS詳細が表示されるわけではありませんが、リンクをナビゲートすることはできます。一般に、フィード・リーダーを設定するためには、特定のフィードのURIがわかっている必要があります。このURIは、サービス・ドキュメント(たとえば、typesdescendantsのワークスペース・リンク)をナビゲートすることにより確認できます。

問合せ構文の詳細は、CMIS仕様を参照してください。Content Management REST Serviceのベスト・プラクティスおよび例については、次項「Content Management REST Serviceのベスト・プラクティスおよび例」を参照してください。

追加機能

Content Management REST ServiceではCMIS仕様の他に、次の追加機能を提供します。

Folder Children Collection

この仕様は、次のCMISサービスを定義します。

  • GET: getChildren

  • POST: createDocument
    またはcreateFolder
    またはcreatePolicy
    またはmoveObject
    またはaddObjectToFolder

Content Management REST Serviceでは、次の追加のサービスが提供されます。

  • POST: create
    このサービスには、uid、fileName、contentId、commentsおよびsimpleResponseという5種類の問合せパラメータと、1つのヘッダー・パラメータSlugが用意されています。これは、簡単なバイナリ・リクエストのアップロードとして使用されることを意図したサービスです。このサービスでは新規ドキュメントが作成されます。SlugおよびfileNameを使用して、リクエストに添付されるバイナリの名前を付けます(両方のパラメータの使用はオプションで、1つのみを定義する必要があります。fileNameが最初にチェックされます)。commentsパラメータはオプションであり、Oracle WebCenter ContentがdDocNameを自動生成するように設定されている場合、contentIdはオプションです。

  • POST: create Content-Type: multipart/form-data
    このサービスには、1つの問合せパラメータuid(ドキュメントが作成されるフォルダのuid)が用意されています。ブール型の問合せパラメータsimpleResponseがfalseに設定されている場合、メディア・タイプapplication/atom+xml;type=entryをレスポンスとして返します。trueに設定されている場合、新しく作成されたドキュメントを指すURIとともに、メディア・タイプtext/htmlがレスポンスとして返されます。commentsおよびsimpleResponseパラメータは両方ともオプションであり、Oracle WebCenter ContentがdDocNameを自動生成するように設定されている場合、contentIdはオプションです。名前"fileUpload"が必要です。

    <html>
    <head>
        <title>simple post</title>
    </head>
    <body>
    <form action="http://<host>:<port>/rest/api/cmis/children/StellentRepository?uid=IDC:Folder/2"
          method="POST"
          enctype="multipart/form-data">
        Select a document to upload: <input type="file" name="fileUpload"/><br>
         <input type="hidden" name="comments" value="this is just a comment"/>
         <input type="hidden" name="contentId" value="uniqueID1"/>
         <input type="hidden" name="simpleResponse" value="true"/> 
        <input type="submit" value="Submit"/>
    </form>
    </body>
    </html>
    

Document Entry

この仕様は、次のCMISサービスを定義します。

  • GET: getObject、getObjectOfLatestVersion (getObject)

  • PUT: updateProperties

  • DELETE: deleteObject

Content Management REST Serviceでは、次の追加のサービスが提供されます。

  • POST: postToDelete
    この新しいサービスには、uidおよび_methodという2つの問合せパラメータが用意されています。ドキュメントはPOSTを介して削除できます。

    http://<host>:<port>/rest/api/cmis/document/repoName?uid=ABC&_method="delete"
    

Content Stream

この仕様は、次のCMISサービスを定義します。

  • GET: getContentStream

  • PUT: setContentStream

  • DELETE: deleteContentStream

Content Management REST Serviceでは、次の追加のサービスが提供されます。

  • POST: postTunnelContentStream
    このサービスには、uid、overwriteFlag、fileName、commentsおよび_methodという5種類の問合せパラメータと、1つのヘッダー・パラメータSlugが用意されています。これは、簡単なバイナリ・リクエストのアップロードまたはPOSTを介した削除として使用されることを意図したサービスです。このサービスには、ドキュメントがすでに存在している必要があります。SlugおよびfileNameを使用して、リクエストに添付されるバイナリの名前を付けます(両方のパラメータの使用はオプションで、1つのみを定義する必要があります。fileNameが最初にチェックされます)。overwriteFlagパラメータは、デフォルトでtrueに設定されています。commentsパラメータはオプションで、_methodの有効な値は"delete"または"put"です(大文字と小文字を区別しません)。

    http://<host>:<port>/rest/api/cmis/stream/repoName?uid=ABC&_method="delete"
    
  • POST: postTunnelContentStream
    Content-Type: multipart/form-data
    このサービスには、1つの問合せパラメータuidが用意されています。これは、簡単なhtmlのmultipart/form-dataのアップロードまたはPOSTを介した削除として使用することを意図したサービスです。このサービスには、ドキュメントがすでに存在している必要があります。属性名"fileUpload"は必須です。"comments"はオプションで、"_method"の有効な値は"delete"または"put"です(大文字と小文字を区別しません)。

    <form action="http://<host>:<port>/rest/api/cmis/stream/repoName?uid=WDOC019113"      method="POST"      enctype="multipart/form-data">
        Select a document to upload: <input type="file" name="fileUpload"/><br>
         <input type="hidden" name="comments" value="this is just a comment"/>
         <input type="hidden" name="_method" value="PUT"/>
        <input type="submit" value="Submit"/>
    </form>
    

Content Management REST Serviceのベスト・プラクティスおよび例

この項では、Content Management REST Serviceの使用に関するベスト・プラクティスおよび例を示します。問合せ構文の詳細は、CMIS仕様を参照してください。

ベスト・プラクティス

Content Management REST Serviceを使用するリポジトリに対して推奨されるベスト・プラクティスを次に示します。

  • 問合せの"FROM"部分に使用できるタイプを決めるには、AtomPubサービス・ドキュメントからタイプ・コレクションに関する項目を参照してください。タイプは必ず問合せ可能とし、必ずそのタイプの問合せ名を使用するようにする必要があります。

    たとえば、IDC:GlobalProfileは次の例に似たタイプ情報を保持できます。

    <cmis:localName>IDC:GlobalProfile</cmis:localName>            
    <cmis:displayName>IDC:GlobalProfile</cmis:displayName>            
    <cmis:queryName>ora:t:IDC!;GlobalProfile</cmis:queryName>            
    <cmis:queryable>true</cmis:queryable>
    

    前述のタイプ情報に関する問合せの例は、"SELECT * FROM ora:t:IDC!;GlobalProfile"とすることができます。

  • 問合せの"SELECT"および"WHERE"部分に使用できるプロパティを決めるには、関連するタイプのエントリを参照してください。そのタイプのプロパティ定義がそれぞれリストされ、問合せ可能および順序付け可能に対応する設定が用意されます。cmis:querynameがこの問合せで使用できる値です。

    たとえば、IDC:GlobalProfileは次の例に似たプロパティ定義を保持できます。

    <cmis:propertyStringDefinition>
                  <cmis:id>/stanl18-ucm11g/IDC:GlobalProfile.ora:p:dDocName</cmis:id>
                  <cmis:localName>dDocName</cmis:localName>
                  <cmis:displayName>dDocName</cmis:displayName>
                  <cmis:queryName>ora:p:dDocName</cmis:queryName>
                  <cmis:description>Content ID</cmis:description>
                  <cmis:propertyType>string</cmis:propertyType>
                  <cmis:cardinality>single</cmis:cardinality>
                  <cmis:updatability>readwrite</cmis:updatability>
                  <cmis:inherited>false</cmis:inherited>
                  <cmis:required>false</cmis:required>
                  <cmis:queryable>true</cmis:queryable>
                  <cmis:orderable>true</cmis:orderable>
                </cmis:propertyStringDefinition>
    

    前述のプロパティ定義に関する問合せの例は、"SELECT ora:p:dDocName FROM ora:t:IDC!;GlobalProfile"とすることができます。

  • 問合せの可読性を高めるために、ContentTypeおよびPropertyDefinitionの名前には英数字以外の文字を使用しないでください。

Content Management REST Serviceの例

この項では、問合せの例をいくつか示します。問合せ構文の詳細は、CMIS仕様を参照してください。(問合せのURI全部を取得するには、サービス・ドキュメント内の問合せURIテンプレートを参照してください。)

  • SELECT * from cmis:folder

  • SELECT cmis:name, cmis:contentStreamFileName, cmis:contentStreamMimeType, cmis:contentStreamLength FROM cmis:document WHERE cmis:contentStreamFileName = 'BinaryName' AND cmis:contentStreamMimeType = 'text/html' AND cmis:contentStreamLength > 1

  • SELECT cmis:name, cmis:creationDate, cmis:lastModificationDate FROM cmis:folder WHERE cmis:name = 'Trash' AND cmis:lastModificationDate > TIMESTAMP '2008-05-18T10:32:44.703-06:00'

  • SELECT * FROM cmis:document WHERE cmis:name LIKE 'baker%'

  • SELECT * FROM cmis:document WHERE cmis:name NOT IN ('nodeBoolean', 'nodeLong')

  • SELECT cmis:name from cmis:document where IN_TREE('/StellentRepository')

  • SELECT * FROM ora:t:IDC:GlobalProfile WHERE ora:p:xBooleanTestField = FALSE ORDER BY ora:p:dDocTitle ASC

  • SELECT ora:p:xMultiValuedDelimiterTest FROM ora:t:IDC:GlobalProfile WHERE ANY ora:p:xMultiValuedDelimiterTest NOT IN ('four')

  • SELECT cmis:name FROM ora:t:IDC:GlobalProfile WHERE CONTAINS('test') ORDER BY ora:p:dInDate DESC

  • SELECT * FROM cmis:document where IN_TREE('/StellentRepository/IDC:Folder/2')

ドキュメントのアクセシビリティについて

オラクル社のアクセシビリティへの取組みの詳細は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docaccを参照してください。

Oracleサポートへのアクセス

Oracleカスタマは、My Oracle Supportから電子サポートにアクセスできます。詳細は、http://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoまたはhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs (聴覚障害者向け)を参照してください。


Oracle Fusion Middleware Content Management REST Service開発者ガイド 11gリリース1 (11.1.1.6.0)

B61393-03

Copyright © 2010, 2011, Oracle and/or its affiliates.All rights reserved.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントが、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供される場合は、次のNoticeが適用されます。

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、このソフトウェアまたはハードウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle およびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXはThe Open Groupの登録商標です。

このソフトウェア、ハードウェア、ドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。