25 リソース・バージョン
Oracle XML DBリポジトリ・リソースはバージョニングできます。バージョン管理されたリソースに対するすべての変更の記録が保持されます。
- Oracle XML DBリポジトリ・リソースのバージョニングの概要
様々なバージョンのリポジトリ・リソースを作成および管理できます。バージョン管理されたリソースに対するすべての変更の記録が保持されます。バージョン管理されたリソースを更新すると、更新前のコンテンツは、異なるリソース・バージョン(履歴レコードのスナップショット)として格納されます。 - PL/SQLパッケージDBMS_XDB_VERSIONの概要
Oracle XML DBリポジトリのリソース・バージョンを操作するには、PL/SQLパッケージDBMS_XDB_VERSION
を使用します。 - リソース・バージョンおよびリソースID
リソース・オブジェクトID (リソースID)は、リソースに一意のシステム生成された定数のIDです。各リソースにはそれぞれリソースIDが含まれます。これには、パス名を含まないシステム生成のリソースであるバージョン・リソースが含まれます。リソースIDは、RESIDと呼ばれる場合があります。 - リソース・バージョンおよびACL
バージョン・リソースは不変です。これはリソースのコンテンツおよびメタデータのスナップショットで、リソースIDと、スナップショットおよびIDの両方は静的です。同様に、バージョン・リソースのアクセス制御リスト(ACL)は変更できません。 - リソースのバージョニングの例
ここでは、バージョン管理されたリソースの作成、そのリソースIDを使用したリソースのコンテンツの取出し、バージョン管理されたリソースのチェックアウト(すべてのユーザー対象)、リソースのコンテンツの更新、リソースのチェックイン、様々なバージョンのリソースのコンテンツとメタデータの取出しおよびリソースのチェックアウトのキャンセルを行う例を示します。
親トピック: Oracle XML DBリポジトリ
25.1 Oracle XML DBリポジトリ・リソースのバージョニングの概要
様々なバージョンのリポジトリ・リソースを作成および管理できます。バージョン管理されたリソースに対するすべての変更の記録が保持されます。バージョン管理されたリソースを更新すると、更新前のコンテンツは、異なるリソース・バージョン(履歴レコードのスナップショット)として格納されます。
バージョニング機能には次のものが含まれます。
-
リソースのバージョン管理。
Oracle XML DBリポジトリ・リソースのバージョン管理を有効または無効にするオプションがあります。
-
バージョン管理されたリソースの更新。
Oracle XML DBは、バージョン管理されたリソースを更新するときに、リソースの新しいバージョンを作成します。この新しいバージョンは、バージョン管理されたリソースを削除しても、データベースから削除されません。
-
バージョン管理されたリソースへのアクセス。
バージョン管理されたリソースには、他のリソースへのアクセスと同じ方法でアクセスできます。
-
リソース・バージョンへのアクセス。
リソースの特定のバージョンにアクセスするには、そのバージョンのリソースIDを使用します。リソースIDは、リソース・バージョン履歴またはバージョン管理されたリソース自身から取得できます。リソース・バージョンおよびリソースIDを参照してください。
表25-1に、この章で使用する用語について示します。
表25-1 Oracle XML DBバージョニングの用語
用語 | 説明 |
---|---|
バージョン対応リソース |
バージョン管理可能なリソース。フォルダおよびACLを除くOracle XML DBリソースをすべて使用できます。 |
バージョン管理されたリソース |
バージョン管理されるリソース。 |
バージョン・リソース |
バージョン管理されたリソースの特定のバージョン。バージョン・リソースはリソースそのものです。システム生成であり、関連するパス名はありません。読取り専用です(更新または削除できません)。 |
|
バージョン管理されたリソースを管理するための操作。バージョン管理されたリソースを変更する前に |
注意:
Oracle XML DBは、Oracle XML DBリソースのみのバージョン管理をサポートしています。Oracle Databaseのユーザー定義の表またはデータのバージョン管理はサポートされません。
バージョンのリソースIDは、チェックインからチェックアウト間での保持が保証されません。最新のバージョンのリソースID以外はすべて保持されます。
Oracle XML DBでは、XML Schemaに基づかないXMLリソースのバージョニングをサポートします。また、基礎となる表に関連付けられているトリガーや制約がない場合にかぎり、XML Schemaに基づくリソース、およびXML Schemaに基づくメタデータを含むリソースのバージョン管理もサポートします。
表の階層が有効な場合は、表にトリガーが含まれます。これには、XML Schema登録の一部として作成される表が含まれ、デフォルトの動作によって階層が有効になります。
また、リソースの基礎となる表の1つを問い合せる場合は、その問合せで複数のバージョンのリソースからデータを戻すことができることにも注意してください。これは、行ごとに異なるリソース・バージョンのデータが基礎となる同じ表に格納されるためです。
親トピック: リソース・バージョン
25.2 PL/SQLパッケージDBMS_XDB_VERSIONの概要
Oracle XML DBリポジトリのリソース・バージョンを操作するには、PL/SQLパッケージDBMS_XDB_VERSION
を使用します。
表25-2に、主要なDBMS_XDB_VERSION
サブプログラムをまとめます。
表25-2 パッケージDBMS_XDB_VERSIONのPL/SQLファンクションおよびプロシージャ
ファンクションまたはプロシージャ | 説明 |
---|---|
|
パス名が指定されたリソースをバージョン管理されたリソースに変換します。 2つ以上のパス名が同じリソースを参照する場合、そのリソースはコピーされ、引数のパス名はコピーにバインドされます。新しいリソースは、バージョン管理されます。他のすべてのパス名は、引続き元のリソースを参照します。 引数はバージョン管理するリソースのパス名です。 バージョン管理されたリソースの最初のバージョン・リソースのリソースIDを戻します。 これは、自動コミットのSQL操作ではありません。フォルダ、バージョン・リソースまたはACLで |
|
バージョン管理されたリソースをチェックアウトします。チェックアウトするまで、バージョン管理されたリソースは更新または削除できません。チェックアウトはすべてのユーザーが対象: チェックアウトされたリソースはすべてのユーザーが変更できます。 引数は、バージョン管理されたチェックアウト対象のリソースのパス名です。これは、自動コミットのSQL操作ではありません。バージョン管理された同じリソースを2人のユーザーが同時にチェックアウトする場合は、一方のユーザーがロールバックする必要があります。注意する点として、リソースをチェックアウトしてから更新するまでコミットしてください。ターゲット・リソースがバージョン管理されていない場合や存在しない場合、またはチェックアウト済の場合はエラーが発生します。 |
|
バージョン管理されたチェックアウト済のリソースをチェックインします。
新しく作成されたバージョンのリソースIDを戻します。 これは、自動コミットのSQL操作ではありません。チェックアウトに使用したパス名と同じパス名を使用する必要はありません。しかし、チェックインのパス名とチェックアウトのパス名は同じリソースを参照する必要があります。そうでない場合は、予期しない結果になります。 リソースの名前が変更された場合は、チェックイン時に新しい名前を使用する必要があります。パス名で参照するリソースがないと、エラーが発生します。 |
|
チェックアウトしたリソースをチェックインします。 引数はチェックアウトしたリソースのパス名です。 リソースがチェックアウトされる前にバージョンのリソースIDを戻します。これは、自動コミットのSQL操作ではありません。チェックアウトに使用したパス名と同じパス名を使用する必要はありません。しかし、 リソースの名前が変更された場合は、 |
|
バージョン・リソースまたはバージョン管理されたリソースを参照するパス名を指定すると、先行のリソースが戻されます。 関数 戻される先行リソースのリストに含まれる要素(親)は1つのみです。Oracle XML DBでは、ブランチがサポートされていません。 |
|
指定されたバージョン・リソースまたはバージョン管理されたリソースで、後続のリソースを戻します。 関数 戻される後続リソースに含まれる要素(親)は1つのみです。Oracle XML DBでは、ブランチがサポートされていません。 |
|
指定されたリソースIDで、リソースを |
親トピック: リソース・バージョン
25.3 リソース・バージョンおよびリソースID
リソース・オブジェクトID (リソースID)は、リソースに一意のシステム生成された定数のIDです。各リソースにはそれぞれリソースIDが含まれます。これには、パス名を含まないシステム生成のリソースであるバージョン・リソースが含まれます。リソースIDは、RESIDと呼ばれる場合があります。
リソースをバージョン管理し、異なるバージョンのリソースを管理するには、PL/SQLパッケージDBMS_XDB_VERSION
を使用します。DBMS_XDB_VERSION
一部のルーチンは、バージョン管理されたリソースのパス名を引数として使用し、関連するバージョン・リソースのリソースIDを戻します。
たとえば、リソースをバージョン管理、つまりバージョン管理されたリソースにするには、ファンクションDBMS_XDB_VERSION.makeVersioned
を使用します。これは、引数としてリソースのリポジトリ・パスを使用します。
バージョン管理された特定のリソースで様々なバージョニング操作を実行する場合は、同じパス名を使用する必要はありませんが、使用するパス名はすべて同じリソースを参照する必要があります。
バージョン管理されたリソースを表す引数としてパス名が渡されると、使用されるリソースの最新(現在)のバージョンになります。パス名は常に最新のバージョンを表します。現在のバージョン以外のバージョンを参照する唯一の方法は、そのリソースIDを使用することです。
指定されたバージョンのリソースIDは定数です。バージョンはそれ自体リソースで、リソースのリソースIDは変更されないことに注意してください。
バージョン管理されたリソースをチェックインするたびに、Oracle XML DBによって、リソースの新しいバージョンが作成されます。バージョン・リソースとは、リソースIDが付いたリソース(そのコンテンツおよびメタデータ)のスナップショットです。バージョン管理された特定のリソースのバージョン・リソースのコレクションによって、前のバージョンの履歴順序、バージョン・シリーズまたはリソースの履歴が構成されます。
リソースID Rを持つバージョン管理されたリソースをチェックインする場合、Oracle XML DBでは、新しいリソースID Pを作成します。これは最後にチェックアウトされる前と同様に、リソース(コンテンツおよびメタデータの両方)のスナップショットを参照します。スナップショットはチェックアウト前に作成されますが、関連するバージョン・リソース(およびそのリソースID P)はチェックイン時に作成されます。新しいリソースID Pおよびそれを参照するスナップショットはともに、リソースの現在ではなく前のバージョンを表すことになります。リソースID Rは引き続き現在のバージョンを参照します。
つまり、バージョン管理されたリソースをチェックインすると、バージョン管理されたリソースの前の状態を表すバージョン・リソースが作成されます。新しいリソースと同様、この新しいバージョン・リソースには新しいリソースID (P)が割り当てられます。
ファイルのバックアップ・コピーの作成を検討する方法で、バージョン・リソースの作成(チェックイン)を検討できます。バックアップ・ファイルに新しい名前を付けるのと同じように、リソースの前のバージョンのスナップショットに、新しいリソースIDが付けられます。作業ファイルが元の名前を保持するのと同じように、現在のリソースは元のリソースIDを保持します。
つまり、新しいバージョンを作成するためにリソースをチェックインすると、新しいバージョン・リソースは、実際は古い(前の)バージョンを表すバージョン・リソース(リソースID PおよびそのリソースIDで参照されるスナップショット)になります。リソースの最新のバージョン(R)が実際の現在のバージョンです。新しいバージョン・リソース = リソースのコンテンツおよびメタデータの古い(前のバージョン)となります。
リソースID Rは、バージョン管理された時点から削除されるまで、バージョン管理されたリソースの現在のバージョンを参照します。最新のバージョンのリソースには、常に元のリソースIDを使用してアクセスできます。
前のバージョンのリソースを参照する必要がある場合は、そのリソースIDを使用して参照する必要があります。パス名を使用することはできません。ファンクションDBMS_XDB_VERSION.getPredsByRESID
を使用すると、指定されたリソースの前のバージョンのリソースIDを取得できます。
注意:
リソースを削除すると、リソースIDやパス名に関係なく、そのリソースの後続の参照でエラー(通常はORA-31001: リソース・ハンドルまたはパス名が無効です
)が発生します。バージョン管理されたリソースを削除すると、そのバージョンにはアクセスできません。
親トピック: リソース・バージョン
25.4 リソース・バージョンおよびACL
バージョン・リソースは不変です。これはリソースのコンテンツおよびメタデータのスナップショットで、リソースIDと、スナップショットおよびIDの両方は静的です。同様に、バージョン・リソースのアクセス制御リスト(ACL)は変更できません。
バージョン管理されたリソースをチェックアウトすると、そのACLを変更することはできません。ACLをチェックインすると、変更されたACLには引き続き現在(最新)のバージョンのリソースが関連付けられ、前のバージョン(新しく作成されたバージョン・リソース)は、変更前のACLに関連付けられます。つまり、前のバージョンは前のACLに関連付けられ、現在のバージョンは更新済のACLに関連付けられます。
注意する重要な点は次のとおりです。
-
リソースのバージョンごとに異なるACLを関連付けることができます。
-
現在のバージョンに関連付けられたACLは、リソースのチェックアウト後に変更できます。
-
チェックインすると、新しく作成されたバージョン・リソース(リソースの前のバージョン)にチェックアウト前のACLが関連付けられます。
-
指定されたバージョンに関連付けられたACLは同じままです。
親トピック: リソース・バージョン
25.5 リソースのバージョニングの例
ここでは、バージョン管理されたリソースの作成、そのリソースIDを使用したリソースのコンテンツの取出し、バージョン管理されたリソースのチェックアウト(すべてのユーザー対象)、リソースのコンテンツの更新、リソースのチェックイン、様々なバージョンのリソースのコンテンツとメタデータの取出しおよびリソースのチェックアウトのキャンセルを行う例を示します。
-
リソースのバージョン管理への配置 - 例25-2
-
そのリソースIDを使用したリソースのコンテンツの取出し - 例25-3
-
バージョン管理されたリソースのチェックアウト(すべてのユーザー対象) - 例25-4
-
リソースのコンテンツの更新 - 例25-5
-
リソースのチェックイン - 例25-6
-
リソースのチェックアウトのキャンセル - 例25-10
例25-3では、Oracle XML DBリポジトリ・リソースをリポジトリ・パス/public/t1.txt
で作成します。リソースにはコンテンツとしてテキストMary had a little lamb
が含まれます。この例では、SQL*PlusコマンドVARIABLE
を使用して、この項の別の例で使用されているバインド変数targetPath
、current_RESID
およびprevious_RESID
を宣言します。
新しいリソースはバージョン管理されません。例25-2では、PL/SQL関数DBMS_XDB_VERSION.makeVersioned
を使用して、バージョン管理の対象にします。この関数は、バージョン管理されたリソースの最初のバージョン・リソースのリソースIDを戻します。この関数では自動コミットは行われません。明示的にCOMMIT
を使用する必要があります。
例25-2では、新しいバージョン・リソースのリソースIDをバインド変数current_RESID
にコピーします。例25-3に、PL/SQLコンストラクタXDBUritype
とPL/SQL関数createOIDPath
を使用し、リソースIDを参照してリソース・コンテンツを取り出す方法を示します。
例25-4では、バージョン管理されたリソースをチェックアウトして(コミットし)、このリソースを変更できるようにします。チェックアウトされたリソースはすべてのユーザーが変更できます。
例25-5では、チェックアウトしたリソースのコンテンツを更新します。(LOB)コンテンツを更新する前に、リソースをロックする必要があります。この例では、リソースの表示名(スカラー属性)のダミー更新を使用して、この操作を実行します。
例25-5では、LOBロケータを使用してLOBコンテンツを取得します。これは要素/ns:Resource/ns:XMLLob
です。これにより既存のコンテンツは空になり、パッケージDBMS_LOB
内のPL/SQLプロシージャtrim
およびappend
を使用して、新しいコンテンツが追加されます。コンテンツの変更がコミットされます。
関連項目:
LOBの更新の詳細は、Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイドを参照してください。
この時点でコンテンツは変更されていますが、この変更はバージョン・シリーズに記録されていません。例25-6では、リソースをチェックインし、チェックインをコミットします。
PL/SQL関数checkIn
は現在のバージョンのリソースIDを戻し、これはcurrent_RESID
と同じです。例25-6では、この値をPL/SQL関数getPredsByRESID
に渡します。この関数は、引数の直前のリソースの、リソースIDのリストを戻します。脚注 1 例25-6では、このリストの最初(かつ唯一)の要素をバインド変数previous_RESID
に割り当てます。
この時点で、current_RESID
の値は現在のバージョンのリソースIDで、previous_RESID
の値は前のバージョンのリソースIDです。
リソースのコンテンツまたはメタデータは、次の方法を使用して取り出すことができます。
-
PL/SQLコンストラクタ
XDBURIType
とPL/SQLファンクションDBMS_XDB_REPOS.createOIDPath
: コンテンツを取り出します。例25-3および例25-7を参照してください。 -
PL/SQLファンクション
DBMS_XDB_VERSION.getContentsCLOBByRESID
: コンテンツを取り出します。例25-8を参照してください。 -
PL/SQLファンクション
DBMS_XDB_VERSION.getResourceByRESID
: メタデータを取り出します。例25-9を参照してください。
コンストラクタXDBURIType
と関数createOIDPath
を使用すると、プロトコルを使用してリソース・コンテンツにアクセスできます。たとえば、createOIDPath
によって戻される値にHTML IMAGE
タグのHREF
を設定し、様々なバージョンのWebページ用グラフィック・イメージ・ファイルのリソースをOracle XML DBで提供できます。
例25-7から例25-9では、それぞれ異なる方法を使用して、バインド変数current_RESID
およびprevious_RESID
で指定されるリソースの2つのバージョンをチェックイン後に取り出します。
PL/SQLファンクションDBMS_XDB_VERSION.unCheckOut
を使用すると、チェックアウトをキャンセルできます。例25-10に、これを示します。
例25-1 リポジトリ・リソースの作成
VARIABLE targetPath VARCHAR2(700) VARIABLE current_RESID VARCHAR2(32) VARIABLE previous_RESID VARCHAR2(32) DECLARE res BOOLEAN; BEGIN :targetPath := '/public/t1.txt'; IF (DBMS_XDB_REPOS.existsResource(:targetPath)) THEN DBMS_XDB_REPOS.deleteResource(:targetPath); END IF; res := DBMS_XDB_REPOS.createResource(:targetPath, 'Mary had a little lamb'); END; /
例25-2 バージョン管理されたリソースの作成
DECLARE resid DBMS_XDB_VERSION.RESID_TYPE; BEGIN resid := DBMS_XDB_VERSION.makeVersioned(:targetPath); :current_RESID := resid; COMMIT; END; /
例25-3 リソースIDの参照によるリソース・コンテンツの取出し
SELECT XDBURIType(DBMS_XDB_REPOS.createOIDPath(:current_RESID)).getClob() FROM DUAL; XDBURITYPE(DBMS_XDB_REPOS.CREATEOIDPATH(:CURRENT_RESID)).GETCLOB() ------------------------------------------------------------------ Mary had a little lamb 1 row selected.
例25-4 バージョン管理されたリソースのチェックアウト
BEGIN DBMS_XDB_VERSION.checkOut(:targetPath); COMMIT; END; /
例25-5 リソース・コンテンツの更新
DECLARE content BLOB; newContentBlob BLOB; newContentClob CLOB; source_offset INTEGER := 1; target_offset INTEGER := 1; warning INTEGER; lang_context INTEGER := 0; BEGIN -- Lock the resource using a dummy update. UPDATE RESOURCE_VIEW SET RES = XMLQuery('copy $i := $p1 modify (for $j in $i/Resource/DisplayName return replace value of node $j with $p2) return $i' PASSING RES AS "p1", XMLCast(XMLQuery('declare namespace ns = "http://xmlns.oracle.com/xdb/XDBResource.xsd"; (: :) $r/ns:Resource/ns:DisplayName/text()' PASSING RES AS "r" RETURNING CONTENT) AS VARCHAR2(128)) AS "p2" RETURNING CONTENT) WHERE equals_path(res, :targetPath) = 1; -- Get the LOB locator. SELECT XMLCast(XMLQuery('declare namespace ns = "http://xmlns.oracle.com/xdb/XDBResource.xsd"; (: :) $r/ns:Resource/ns:XMLLob' PASSING RES AS "r" RETURNING CONTENT) AS BLOB) INTO content FROM RESOURCE_VIEW WHERE equals_path(RES, :targetPath) = 1; -- Update the LOB. newContentClob := 'Hickory dickory dock, the mouse ran up the clock'; DBMS_LOB.createTemporary(newContentBlob, false, DBMS_LOB.CALL); DBMS_LOB.convertToBlob(newContentBlob, newContentClob, DBMS_LOB.getLength(newContentClob), source_offset, target_offset, nls_charset_id('AL32UTF8'), lang_context, warning); DBMS_LOB.open(content, DBMS_LOB.lob_readwrite); DBMS_LOB.trim(content, 0); DBMS_LOB.append(content, newContentBlob); DBMS_LOB.close(content); DBMS_LOB.freeTemporary(newContentBlob); DBMS_LOB.freeTemporary(newContentClob); COMMIT; END; /
例25-6 バージョン管理されたリソースのチェックイン
DECLARE resid DBMS_XDB_VERSION.RESID_TYPE; BEGIN resid := DBMS_XDB_VERSION.checkIn(:targetPath); :previous_RESID := DBMS_XDB_VERSION.getPredsByRESID(resid)(1); COMMIT; END; /
例25-7 XDBURITYPEおよびCREATEOIDPATHを使用したリソース・バージョン・コンテンツの取出し
SELECT XDBURIType(DBMS_XDB_REPOS.createOIDPath(:current_RESID)).getClob() FROM DUAL; XDBURITYPE(DBMS_XDB_REPOS.CREATEOIDPATH(:CURRENT_RESID)).GETCLOB() ------------------------------------------------------------------ Mary had a little lamb 1 row selected. SELECT XDBURIType(DBMS_XDB_REPOS.createOIDPath(:previous_RESID)).getClob() FROM DUAL; XDBURITYPE(DBMS_XDB_REPOS.CREATEOIDPATH(:PREVIOUS_RESID)).GETCLOB() ------------------------------------------------------------------- Hickory dickory dock, the mouse ran up the clock 1 row selected.
例25-8 GETCONTENTSCLOBBYRESIDを使用したリソース・バージョン・コンテンツの取出し
SELECT DBMS_XDB_VERSION.getContentsCLOBByRESID(:current_RESID) FROM DUAL; DBMS_XDB_VERSION.GETCONTENTSCLOBBYRESID(:CURRENT_RESID) ------------------------------------------------------- Mary had a little lamb 1 row selected. SELECT DBMS_XDB_VERSION.getContentsCLOBByRESID(:previous_RESID) FROM DUAL; DBMS_XDB_VERSION.GETCONTENTSCLOBBYRESID(:PREVIOUS_RESID) -------------------------------------------------------- Hickory dickory dock, the mouse ran up the clock 1 row selected.
例25-9 GETRESOURCEBYRESIDを使用したリソース・バージョン・メタデータの取出し
SELECT XMLSerialize(DOCUMENT DBMS_XDB_VERSION.getResourceByRESID(:current_RESID) AS CLOB INDENT SIZE = 2) FROM DUAL; <Resource xmlns="http://xmlns.oracle.com/xdb/XDBResource.xsd" Hidden="false" Invalid="false" VersionID="2" ActivityID="0" Container="false" CustomRslv="false" VersionHistory="false" StickyRef="true"> <CreationDate>2009-05-06T12:33:34.012133</CreationDate> <ModificationDate>2009-05-06T12:33:34.280199</ModificationDate> <DisplayName>t1.txt</DisplayName> <Language>en-US</Language> <CharacterSet>UTF-8</CharacterSet> <ContentType>text/plain</ContentType> <RefCount>1</RefCount> <ACL> <acl description="Public:All privileges to PUBLIC" xmlns="http://xmlns.oracle.com/xdb/acl.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/xdb/acl.xsd http://xmlns.oracle.com/xdb/acl.xsd" shared="true"> <ace> <grant>true</grant> <principal>PUBLIC</principal> <privilege> <all/> </privilege> </ace> </acl> </ACL> <Owner>HR</Owner> <Creator>HR</Creator> <LastModifier>HR</LastModifier> <SchemaElement>http://xmlns.oracle.com/xdb/XDBSchema.xsd#text</SchemaElement> <Contents> <text>Mary had a little lamb</text> </Contents> <VCRUID>69454F2EF12E3375E040578C8A1764B5</VCRUID> <Parents>69454F2EF12F3375E040578C8A1764B5</Parents> </Resource> 1 row selected. SELECT XMLSerialize(DOCUMENT DBMS_XDB_VERSION.getResourceByRESID(:previous_RESID) AS CLOB INDENT SIZE = 2) FROM DUAL; <Resource xmlns="http://xmlns.oracle.com/xdb/XDBResource.xsd" Hidden="false" Invalid="false" VersionID="1" Container="false" CustomRslv="false" VersionHistory="false" StickyRef="true"> <CreationDate>2009-05-06T12:33:34.012133</CreationDate> <ModificationDate>2009-05-06T12:33:34.012133</ModificationDate> <DisplayName>t1.txt</DisplayName> <Language>en-US</Language> <CharacterSet>UTF-8</CharacterSet> <ContentType>text/plain</ContentType> <RefCount>0</RefCount> <ACL> <acl description="Public:All privileges to PUBLIC" xmlns="http://xmlns.oracle.com/xdb/acl.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/xdb/acl.xsd http://xmlns.oracle.com/xdb/acl.xsd" shared="true"> <ace> <grant>true</grant> <principal>PUBLIC</principal> <privilege> <all/> </privilege> </ace> </acl> </ACL> <Owner>HR</Owner> <Creator>HR</Creator> <LastModifier>HR</LastModifier> <SchemaElement>http://xmlns.oracle.com/xdb/XDBSchema.xsd#text</SchemaElement> <Contents> <text>Hickory dickory dock, the mouse ran up the clock</text> </Contents> <VCRUID>69454F2EF12E3375E040578C8A1764B5</VCRUID> </Resource> 1 row selected.
例25-10 UNCHECKOUTを使用したチェックアウトのキャンセル
DECLARE
resid DBMS_XDB_VERSION.RESID_TYPE;
BEGIN
resid := DBMS_XDB_VERSION.unCheckOut(:targetPath);
END;
/
親トピック: リソース・バージョン
脚注の説明
脚注1:Oracle XML DBでは、バージョン・リソースは、常に、単一の先行リソース(その直前の単一のバージョン)を持ちます。WebDAV標準では、複数の先行リソースの選択肢が用意されます。