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

 

Oracle® Fusion Middleware

Content Management REST Service開発者ガイド

11g リリース1(11.1.1.4.0)

B61393-02(原本部品番号:E15813-06)

2011年2月

概要

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仕様を復習をしておくことをお薦めします。このガイドはContent Management Interoperability Services(CMIS)バージョン1.0を参考資料とします。CMISバージョン1.0のURLは、http://docs.oasis-open.org/cmis/CMIS/v1.0/cmis-spec-v1.0.htmlです。

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


注意:

CMISは、多岐にわたるコンテンツ・システムの基準としては最も一般性の低いものです。Oracle Content Serverの機能とは直接連携していません。使用できる機能を特定するには、CMISサービスのドキュメントを参照してください。

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

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

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

この項は、CMISの「ドメイン・モデル」の説明での項に従って編成されています。

データ・モデル

Content Management REST Serviceのサービス・ドキュメントは、AtomPubワークスペースで構成されています。ワークスペースはそれぞれ、コンテンツ接続にマッピングされます(Content Management REST Serviceでサポートされているのは、UCMリポジトリのみです)。サービス・ドキュメントの詳細は、次項(「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オブジェクト型には、UCM Content Serverメタデータ・フィールド定義およびUCM Content Server SiteStudioリージョン定義からマップされたフィールドが含まれています。

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

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

  • その他のすべてのTEXTメタデータ・フィールド: cmis:propertyString

  • LONG TEXTメタデータ・フィールド: cmis:propertyString

  • MEMOメタデータ・フィールド: cmis:propertyString

  • INTEGERメタデータ・フィールド: cmis:propertyInteger

  • DATEメタデータ・フィールド: propertyDateTime

  • DECIMALメタデータ・フィールド: cmis:propertyDecimal

UCM Content Server SiteStudioリージョン定義フィールドから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 Content Serverバイナリです。

フォルダ・オブジェクト

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

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

このリリースのContent Management REST Serviceではリレーションシップをサポートしていないため、「リレーションシップ・オブジェクト」の項は適用されません。

ポリシー・オブジェクト

このリリースのContent Management REST Serviceではポリシーをサポートしていないため、「ポリシー・オブジェクト」の項は適用されません。

アクセス制御

このリリースの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(バージョニング)

バージョニング

このリリースのContent Management REST Serviceではバージョニングをサポートしていないため、2.10項は適用されません。

問合せ

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

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

    • FROM cmis:document ==> 任意のUCMドキュメント(IDC:GlobalProfileなど)

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

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

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

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

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

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

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

    • 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 ==> UCMプロファイル名またはSiteStudioリージョン定義名


      注意:

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

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


    注意:

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

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

  • Content Management REST Serviceの実装では、UCMでソート可能と指定されるプロパティが順序付け可能と出力されます。このリストには場合により、実際にはUCMでソートできないプロパティが含まれていることがあります。UCMがソート・エラーとしてレポートしているフィールド上で順序付けをできるようにする場合には、以下の手順に従って、指定のUCMフィールドをソート可能にしてください。

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

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

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

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

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

注意事項 推奨事項

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

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

フォルダの再帰的な検索はUCMではサポートされていませんが、右側の推奨事項で説明したように、UCMサーバー上で構成されていればドキュメントの再帰的検索はサポートされています。

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

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

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

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

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

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

UCMフォルダ検索では、ORおよびNOTに対するサポートはありません。

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

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

URLSの例:

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

続いて、isSearchableフィールドの設定を検索します。または、CMISを介して固有のタイプを調べます。

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

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

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

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

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

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

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

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

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

例: URL: http://myContentServer/idc/idcplg?IdcService=GET_ADVANCED_SEARCH_OPTIONS&IsSoap=1で、IsSortableを検索します。または、プロパティ定義が問合せ可能かどうか確認するためにCMISを介してタイプを調べます。

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

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

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

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

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

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

ドキュメントの検索時には、UCMが適切に構成されていれば再帰的検索(フォルダ・ツリー検索)がサポートされます。検索パスが設定されていない場合には、リポジトリ内のすべてのドキュメント(ファイル済と未ファイル分の両方)が検索されます。

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

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

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

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

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

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

たとえば、'cmis:objectTypeId = 'IDC:GlobalProfile' ||myField='bar'の実行はサポートされません。

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

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

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

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

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


問合せの例は、Content Management REST Serviceのベスト・プラクティスおよび例を参照してください。

サービス

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

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

CMIS仕様のRESTful AtomPubバインディングはAtomPubに基づいて仕様を定義し、アプリケーションはこのAtomPubを使用して1つ以上のContent Managementリポジトリと連携できます。RESTサービスは、WebCenter Spacesのインスタンスを介して利用できます。詳細は、『Oracle Fusion Middleware Oracle WebCenterのための開発者ガイド』を参照してください。

サービス・ドキュメント

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

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


注意:

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

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

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

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

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

2.2項: 「レスポンス・フォーマット」では、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 or addObjectToFolder

Content Management REST Serviceは次のサービスも提供します。

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

  • POST: create Content-Type: multipart/form-data この新しいサービスには、uidという問合せパラメータが1つのみ用意されています。このuidは、作成されるドキュメントを格納するフォルダのuidです。ブール問合せパラメータsimpleResponseがfalseに設定されている場合には、application/atom+xml;type=entryというメディア・タイプのレスポンスが返されます。このパラメータがtrueに設定されている場合は、新しく作成されたドキュメントを指定するURIとともに、text/htmlというメディア・タイプのレスポンスが返されます。commentsパラメータおよびsimpleResponseパラメータはいずれもオプションです。UCMが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 この新しいサービスには、uidという問合せパラメータが1つのみ用意されています。POSTによる簡単なhtml multipart/form-dataのアップロードまたは削除として使用されることを意図しています。このサービスの場合、ドキュメントは必ず既存です。属性name="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:dRevClassID > 1 ORDER BY ora:p:dDocTitle,ora:p:dInDate DESC

  • 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')

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

オラクル社は、障害のあるお客様を含む、すべてのお客様にオラクル社の製品、サービスおよびサポート・ドキュメントをご利用いただけることを目標としています。 オラクル社のドキュメントには、ユーザーが障害支援技術を使用して情報を利用できる機能が組み込まれています。 HTML形式のドキュメントで用意されており、障害のあるお客様が簡単にアクセスできるようにマークアップされています。 標準規格は改善されつつあります。オラクル社はドキュメントをすべてのお客様がご利用できるように、市場をリードする他の技術ベンダーと積極的に連携して技術的な問題に対応しています。 オラクル社のアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/accessibility/を参照してください。

ドキュメント内のサンプル・コードのアクセシビリティについて

スクリーン・リーダーは、ドキュメント内のサンプル・コードを正確に読めない場合があります。コード表記規則では閉じ括弧のみを行に記述する必要があります。しかし、一部のスクリーン・リーダーは括弧のみの行を読まない場合があります。

外部Webサイトのドキュメントのアクセシビリティについて

このドキュメントにはオラクル社およびその関連会社が所有または管理しないWebサイトへのリンクが含まれている場合があります。オラクル社およびその関連会社は、それらのWebサイトのアクセシビリティに関しての評価や言及は行っておりません。

Oracleサポートへのアクセス

Oracleカスタマは、My Oracle Supportから電子サポートにアクセスできます。詳細は、http://www.oracle.com/support/contact.htmlまたはhttp://www.oracle.com/accessibility/support.html(聴覚障害者向け)を参照してください。


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

B61393-02

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 USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

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

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

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