DBMS_XDB_REPOS
パッケージは、Oracle XMLデータベース・リポジトリで動作するインタフェースを提供します。
関連項目: 次のトピックに関する詳細は、『Oracle XML DB開発者ガイド』を参照してください。
|
この章では、次の項目について説明します。
概要
セキュリティ・モデル
定数
DBMS_XDB_REPOS
パッケージをOracle XML DBリポジトリで操作して、リソースの作成、変更および削除を行えます。これには、アクセス制御リスト(ACL)に基づくセキュリティの管理も含まれます。このインタフェースには、問合せとDMLの両方の機能が備わっています。PL/SQLパッケージ(DBMS_XDB_REPOS
、DBMS_XDBZおよびDBMS_XDB_VERSION)の組合せを使用すると、ドキュメントとフォルダの作成、削除および名前変更、フォルダ階層内でのファイルまたはフォルダの移動、ファイルまたはフォルダに対するアクセス権限の設定および変更、バージョニングの開始および管理を実行できます。
XDBによって所有されているため、DBMS_XDB_REPOS
パッケージはSYS
またはXDBで作成する必要があります。EXECUTE
権限は、PUBLIC
に付与されます。このパッケージ内のサブプログラムは、現行のユーザーの権限を使用して実行されます。XDB構成で動作するサブプログラムは、現在のユーザーがSYS
またはXDBである場合、または現在のユーザーがXDBADMIN
ロールまたはDBA
ロールを持つ場合にのみ成功します。
DBMS_XDB_REPOS
パッケージでは、表185-1「DBMS_XDB_REPOSの定数」に示す定数が使用されます。
表185-1 DBMS_XDB_REPOSの定数
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
1 |
リソースを削除します。リソースに子がある場合失敗します。 |
|
|
2 |
リソースと子がある場合それを削除します。 |
|
|
3 |
含まれているオブジェクトが無効な場合でも、リソースを削除します。 |
|
|
4 |
含まれているオブジェクトが無効な場合でも、リソースと子がある場合にそれを削除します。 |
|
|
1 |
メタデータの行を削除します。 |
|
|
2 |
行を削除しません。 |
|
|
(60*60) |
WebDAVロックのタイムアウト値(秒数) |
|
|
1 |
フォルダのリソースへの強いリンク |
|
|
2 |
フォルダのリソースへの弱いリンク |
|
|
3 |
フォルダのリソースへのシンボリック・リンク |
表185-2 DBMS_XDB_REPOSパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
指定のACLドキュメントで指定されている現行ユーザーに付与されたアクセス権限をチェックします。このアクセス権限は、所有者が'owner'パラメータで指定されているリソースに対するものです。 |
|
ユーザー定義のメタデータを |
|
リソースの所有者を指定した所有者に変更します。 |
|
指定したACEを、指定したリソースのACLに追加します。 |
|
指定したリソースに対して現行ユーザーに付与されているアクセス権限をチェックします。 |
|
階層内に新規フォルダ・リソースを作成します。 |
|
オブジェクトIDに基づいたリソースの仮想パスを作成します。 |
|
新規リソースを作成します。 |
|
階層からリソースを削除します。 |
|
リソースからメタデータを削除します(スキーマ・ベースまたは非スキーマ・ベースのメタデータに使用できます)。 |
|
リソースの絶対パスに基づいて、リソースが階層であるかどうかを判別します。 |
|
パス名を指定して、リソースを保護するACLドキュメントを取得します。 |
|
BLOBとして戻されたリソースの内容を取り出します。 |
|
CLOBとして戻されたリソースの内容を取り出します。 |
|
文字列として戻されたリソースの内容を取り出します。 |
|
|
|
|
|
リソースへのパスを指定して、現行ユーザーのリソースのロック・トークンを戻します。 |
|
指定したリソース上の現在のユーザーに付与された権限をすべて取得します。 |
|
リソースの絶対パスからオブジェクトIDを戻します。 |
|
XDB(ユーザー)の現行の表領域を戻します。 |
|
リソースにBLOBコンテンツがある場合は |
|
リソースに文字コンテンツがある場合は |
|
リソースにXMLコンテンツがある場合は |
|
リソースにXMLコンテンツへの |
|
リソースがフォルダまたはコンテナの場合は、 |
|
既存のリソースへのリンクを作成します。 |
|
リソースへのパスを指定して、リソースに対するWebDAVスタイルのロックを取得します。 |
|
指定したリソース内のドキュメント・リンクを処理します。 |
|
リソースからすべてのユーザー・メタデータを削除します。 |
|
XDBリソースの名前を変更します。 |
|
指定したリソースにACLを設定します。 |
|
パスを親のパスと子のパスに分割します。 |
|
リソースの変更時刻を現在の時刻に変更します。 |
|
ロック・トークンおよびリソース・パスを指定して、リソースのロックを解除します。 |
|
リソースのメタデータを更新します。 |
このファンクションは、リソースのOWNER
による指定したACLドキュメントによって、現在のユーザーに付与されたアクセス権限をチェックします。すべての権限が付与されている場合は、正の整数を戻します。
構文
DBMS_XDB_REPOS.ACLCHECKPRIVILEGES( acl_path IN VARCHAR2, owner IN VARCHAR2, privs IN xmltype) RETURN PLS_INTEGER;
パラメータ
表185-3 ACLCHECKPRIVILEGESファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ACLドキュメントの階層内の絶対パス。 |
|
リソースの所有者名。疑似ユーザー「DAV:owner」は、ACL権限の解決時にこのユーザーに置き換えられます。 |
|
privilege要素の |
このプロシージャは、ユーザー定義のメタデータをXMLTYPE
へのREF
またはXMLTYPE
として使用し、目的のリソースに追加します。
構文
DBMS_XDB_REPOS.APPENDRESOURCEMETADATA ( abspath IN VARCHAR2, metadata IN XMLTYPE); DBMS_XDB_REPOS.APPENDRESOURCEMETADATA ( abspath IN VARCHAR2, metadata IN REF SYS.XMLTYPE);
このプロシージャは、リソースの所有者を指定した所有者に変更します。
このファンクションは新しいリソースを作成します。オーバーロード・オプションの記述は各バージョンの構文の前に配置します。
構文
指定した文字列を内容として使用し、新規リソースを作成します。
DBMS_XDB_REPOS.CREATERESOURCE( abspath IN VARCHAR2, data IN VARCHAR2) RETURN BOOLEAN;
指定したXMLType
データを内容として使用し、新規リソースを作成します。
DBMS_XDB_REPOS.CREATERESOURCE( abspath IN VARCHAR2, data IN SYS.XMLTYPE) RETURN BOOLEAN;
既存のXMLType
行にREF
を指定し、その行を指す内容を持つリソースを作成します。この行は、別のリソース内に事前に存在させることはできません。
DBMS_XDB_REPOS.CREATERESOURCE( abspath IN VARCHAR2, datarow IN REF SYS.XMLTYPE) RETURN BOOLEAN;
内容として指定したBLOB
を使用して、リソースを作成し、ソースBLOB
のキャラクタ・セットを指定します。
DBMS_XDB_REPOS.CREATERESOURCE( abspath IN VARCHAR2, data IN BLOB, csid IN NUMBER :=0) RETURN BOOLEAN;
内容として指定したBFILE
を使用して、リソースを作成し、ソースBFILE
のキャラクタ・セットを指定します。
DBMS_XDB_REPOS.CREATERESOURCE ( abspath IN VARCHAR2, data IN BFILE, csid IN NUMBER :=0) RETURN BOOLEAN;
指定したCLOB
を内容として使用し、リソースを作成します。
DBMS_XDB_REPOS.CREATERESOURCE ( abspath IN VARCHAR2, data IN CLOB) RETURN BOOLEAN;
文字列を指定すると、その文字列を内容として持つ新規リソースを階層に挿入します。
DBMS_XDB_REPOS.CREATERESOURCE ( abspath IN VARCHAR2, data IN VARCHAR2, schemaurl IN VARCHAR2 := NULL, elem IN VARCHAR2 := NULL) RETURN BOOLEAN;
XMLTYPE
およびスキーマURLを指定すると、XMLTYPE
を内容として持つ新規リソースを階層に挿入します。
DBMS_XDB_REPOS.CREATERESOURCE ( abspath IN VARCHAR2, data IN SYS.XMLTYPE, schemaurl IN VARCHAR2 := NULL, elem IN VARCHAR2 := NULL) RETURN BOOLEAN;
パラメータ
表185-10 CREATERESOURCEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
作成するリソースの絶対パス。パス名の親フォルダは、階層内にすでに存在している必要があります。たとえば、 |
|
新規リソースの内容が含まれている文字列バッファ。データは解析され、スキーマに基づいたXML文書が含まれているかどうかがチェックされ、含まれている場合、内容はスキーマのデフォルト表にスキーマに基づいたものとして格納されます。含まれていない場合は、バイナリ・データとして保存されます。 |
|
内容として使用する |
|
ドキュメントのキャラクタ・セットID。有効なOracle IDである必要があり、無効な場合、エラーが戻されます。 CSIDを指定しない場合またはCSIDに0(ゼロ)を指定した場合、ドキュメントのキャラクタ・セットIDは次のように判断されます。
|
|
XMLデータの場合、データが準拠するスキーマURL(デフォルトは |
|
要素名(デフォルトは |
このプロシージャは、絶対パスでリソースを使用し、REFで識別されるスキーマ・ベースのメタデータ、またはネームスペースと名前の組合せで識別されるメタデータ(スキーマ・ベースまたは非スキーマ・ベースのメタデータ)を削除します。また、メタデータの削除方法を指定する追加のパラメータ(オプション)も使用できます。このパラメータは、削除する必要のあるスキーマ・ベースのリソース・メタデータにのみ関連しています。非スキーマ・ベースのメタデータの場合、このパラメータは無視されます。
構文
次の構文は、スキーマ・ベースのメタデータにのみ使用できます。
DBMS_XDB_REPOS.DELETERESOURCEMETADATA ( abspath IN VARCHAR2, metadata IN REF SYS.XMLTYPE, delete_option IN pls_integer := DBMS_XDB_REPOS.DELETE_RESOURCE_METADATA_CASCADE);
次の構文は、スキーマ・ベースまたは非スキーマ・ベースのメタデータに使用できます。
DBMS_XDB_REPOS.DELETERESOURCEMETADATA ( abspath IN VARCHAR2, metadatans IN VARCHAR2, metadataname IN VARCHAR2, delete_option IN pls_integer := DBMS_XDB_REPOS.DELETE_RESOURCE_METADATA_CASCADE);
パラメータ
表185-12 DELETERESOURCEMETADATAプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
リソースの絶対パス。 |
|
削除する(スキーマ・ベースの)メタデータの一部への |
|
削除するメタデータの断片のネームスペース。 |
|
削除するメタデータの断片のローカル名。 |
|
スキーマ・ベースのメタデータにのみ適用できます。このパラメータは次のいずれかになります。
|
このファンクションは、BLOB
として戻されたリソースの内容を取り出します。
構文
DBMS_XDB_REPOS.GETCONTENTBLOB( abspath IN VARCHAR2, csid OUT PLS_INTEGER, locksrc IN BOOLEAN := FALSE) RETURN BLOB;
このプロシージャは、指定したフォルダから指定したリソースに作成します。
リソースへのパスを指定して、リソースに対するWebDAVスタイルのロックを取得します。
構文
DBMS_XDB_REPOS.LOCKRESOURCE( path IN VARCHAR2, depthzero IN BOOLEAN, shared IN boolean) RETURN BOOLEAN;
このプロシージャは、リソースからすべてのユーザー・メタデータを削除します。スキーマ・ベースのメタデータはカスケード・モードで削除され、対応するメタデータ表から行が削除されます。
このプロシージャは、XDBリソースの名前を変更します。
このプロシージャは、リソースのメタデータを更新します。このプロシージャは、絶対パスで識別されるリソースおよび、そのREF
で識別されて置き換えられる、そのリソース内のメタデータを使用します。メタデータの一部をユーザー定義のメタデータ(XMLTYPE
へのREF
またはXMLTYPE
のいずれかの形式)に置き換えます。
構文
次の構文は、スキーマ・ベースのメタデータの更新にのみ使用できます。新しいメタデータは、スキーマ・ベースである必要があります。
DBMS_XDB_REPOS.UPDATERESOURCEMETADATA( abspath IN VARCHAR2, oldmetadata IN REF SYS.XMLTYPE, newmetadata IN REF SYS.XMLTYPE)
次の構文は、スキーマ・ベースのメタデータの更新にのみ使用できます。新しいメタデータは、スキーマ・ベースまたは非スキーマ・ベースである必要があります。
DBMS_XDB_REPOS.UPDATERESOURCEMETADATA( abspath IN VARCHAR2, oldmetadata IN REF SYS.XMLTYPE, newmetadata IN XMLTYPE);
次の構文は、スキーマ・ベースおよび非スキーマ・ベースの両方のメタデータに使用できます。
DBMS_XDB_REPOS.UPDATERESOURCEMETADATA( abspath IN VARCHAR2, oldns IN VARCHAR2, oldname IN VARCHAR, newmetadata IN XMLTYPE);
次の構文は、スキーマ・ベースおよび非スキーマ・ベースの両方のメタデータに使用できます。新しいメタデータは、スキーマ・ベースである必要があります。
DBMS_XDB_REPOS.UPDATERESOURCEMETADATA( abspath IN VARCHAR2, oldns IN VARCHAR2, oldname IN VARCHAR, newmetadata IN REF SYS.XMLTYPE);