33.2 OCI XML DB関数 

OCI XML DB関数をリストし、説明します。

表33-2は、この章で説明されているOCI XML DB関数を示しています。

表33-2 OCI XML DB関数

関数 用途

OCIBinXmlCreateReposCtxFromConn()

メタデータ接続コンテキストを作成します。

OCIBinXmlCreateReposCtxFromCPool()

メタデータ接続コンテキストの接続プールを作成します。

OCIBinXmlSetFormatPref()

転送されるイメージがバイナリのXMLフォーマットであることを指定します。

OCIBinXmlSetReposCtxForConn()

データ接続をメタデータ接続に関連付けます。

OCIXmlDbFreeXmlCtx()

XMLコンテキストを解放します。

OCIXmlDbInitXmlCtx()

データベースからのXMLデータのXMLコンテキストを初期化します。

33.2.1 OCIBinXmlCreateReposCtxFromConn()

メタデータ接続コンテキストを作成します。

用途

指定のOCIEnv/OCISvcCtx専用OCI接続からメタデータ接続コンテキスト(OCIBinXmlReposCtx)を作成します。この接続はメタデータ専用であることに注意してください。

構文

sword OCIBinXmlCreateReposCtxFromConn (   OCIEnv              *env, 
                                          OCISvcCtx           *svcctx,
                                          OCIError            *err,
                                          OCIBinXmlReposCtx  **ctx);

パラメータ

env (IN)

環境ハンドルです。

svcctx (IN)

メタデータへのアクセスに使用する接続へのハンドルです。

err (IN)

エラー・ハンドルです。

ctx (OUT)

作成され戻されるメタデータ・コンテキストです。

戻り値

エラーの場合は-1、成功の場合は0 (ゼロ)が戻されます。errパラメータには、エラーの詳細情報が含まれます。

33.2.2 OCIBinXmlCreateReposCtxFromCPool()

指定の接続プールからメタデータ接続コンテキストを作成します。

用途

指定の接続プールからメタデータ接続コンテキスト(OCIBinXmlReposCtx)を作成します。トークン・リポジトリからの情報が必要になるたびに、接続プール内の接続が使用されます。

構文

sword OCIBinXmlCreateReposCtxFromCPool (   OCIEnv              *env, 
                                           OCICPool            *cpool,
                                           OCIError            *err,
                                           OCIBinXmlReposCtx  **ctx);

パラメータ

env (IN)

環境ハンドルです。

cpool (IN)

メタデータへのアクセスに使用する接続へのハンドルです。

err (IN)

エラー・ハンドルです。

ctx (OUT)

作成され戻されるメタデータ・コンテキストです。

戻り値

エラーの場合は-1、成功の場合は0 (ゼロ)が戻されます。errパラメータには、エラーの詳細情報が含まれます。

33.2.3 OCIBinXmlSetFormatPref()

XML文書についてクライアントとサーバーの間で転送されるイメージが、バイナリのXMLフォーマットであることを指定します。

用途

将来は、すべての通信にバイナリのXMLフォーマットが使用されます。このフォーマットを設定できるのは、バイナリXML対応アプリケーションのみです。

構文

sword OCIBinXmlSetFormatPref (   xmldomdoc   *doc,
                                 ub4          formattype);

パラメータ

doc (IN)

プリファレンスの適用対象であるdomdocへのポインタです。

formattype (IN)

ピクルに使用するフォーマットのタイプです。現在使用できる値は、OCIXML_FORMATTYPE_TEXTOCIXML_FORMATTYPE_BINXMLおよびOCIXML_FORMATTYPE_TBXMLのみです。

ノート:

OCI関数OCIBinXmlSetFormatPrefに導入された新しいオプションOCIXML_FORMATTYPE_TBXMLは、指定されたxmldomdocを、サーバーに送信する前にTBXペイロードを含むXMLTypeイメージとして選択するようにOCIクライアントに指示します。クライアント・プロパティXML_ENCODE_ONが未設定またはFALSEに設定されている場合、フォーマット・プリファレンスは無視され、xmldomdocはプレーン・テキスト・ペイロードを含むXMLtypeイメージとして選択されます。

次の例では、OCIクライアントに、TBXペイロードを含むXMLtypeイメージを選択するように指示します。
OCISession *myusrhp;         /* user session handle */
OCIError   *myerrhp;             /* the error handle */
Xmldomdoc  *xml;                      /* XML document */

...

/* Enable client-side encoding */
OCIAppCtxSet((void *) myusrhp,(void *)"CLIENTCONTEXT",(ub4) 13,
                (void *)"XML_ENCODE_ON", 13
                (void *)"TRUE", 5, myerrhp, OCI_DEFAULT);

...

/* Set format preference */
if (status = OCIBinXmlSetFormatPref(xml, OCIXML_FORMATTYPE_TBXML))
{
	printf("FAILED: OCIBinXmlSetFormatPref()\n");
	checkerr(errhp, status);	
	return OCI_ERROR;
}

戻り値

エラーの場合は-1、成功の場合は0 (ゼロ)が戻されます。

関連トピック

33.2.4 OCIBinXmlSetReposCtxForConn()

データ接続をメタデータ接続に関連付けます。

用途

専用接続の場合、データ接続とメタデータ接続の環境ハンドルが同一である必要があることに注意してください。

構文

sword OCIBinXmlSetReposCtxForConn (   OCISvcCtx          *dataconn,
                                      OCIBinXmlReposCtx  *reposctx);

パラメータ

dataconn (IN)

データ接続ハンドルです。

reposctx (IN)

メタデータ接続へのポインタです。

戻り値

エラーの場合は-1、成功の場合は0 (ゼロ)が戻されます。errパラメータには、エラーの詳細情報が含まれます。

関連トピック

33.2.5 OCIXmlDbFreeXmlCtx()

XMLコンテキストを解放します。

用途

OCIXmlDbInitXmlCtx()へのコールによる割当てを解放します。

構文

void OCIXmlDbFreeXmlCtx ( xmlct   *xctx ); 

パラメータ

xctx (IN)

終了するXMLコンテキストです。

コメント

関連項目:

使用例は、「OCI XML DB関数の使用」を参照してください

戻り値

エラーの場合は-1、成功の場合は0 (ゼロ)が戻されます。

関連トピック

33.2.6 OCIXmlDbInitXmlCtx()

XMLコンテキストを初期化します。

用途

データベースからのXMLデータのXMLコンテキストを初期化します。

構文

xmlctx *OCIXmlDbInitXmlCtx (   OCIEnv                *envhp,
                               OCISvcCtx             *svchp,
                               OCIError              *errhp,
                               ocixmldbparam         *params,
                               ub4                    num_params ); 

パラメータ

envhp (IN)

OCI環境ハンドルです。

svchp (IN)

OCIサービス・ハンドルです。

errhp (IN)

OCIエラー・ハンドルです。

params (IN)

オプションで使用可能なこの配列の値は、OCIの継続時間(デフォルト値はOCI_DURATION_SESSION)または次のプロトタイプのユーザー登録コールバックであるエラー・ハンドラのいずれかに対するポインタです。

void (*err_handler) (sword errcode, (const OraText *) errmsg);

err_handlerの2つのパラメータは次のとおりです。

errcode (OUT)

数値のエラー値です。

errmsg (OUT)

エラー・メッセージ・テキストです。

num_params (IN)

paramsから読み取るパラメータ数。num_paramsの値が配列paramsのサイズを超えると、予期しない動作が発生します。

コメント

関連項目:

使用例は、「OCI XML DB関数の使用」を参照してください

戻り値

次のいずれかを戻します。

  • エラー・ハンドラとコールバックに適切な値が移入された、xmlctx構造へのポインタ。これは、後にすべてのOCIコールに使用されます。

  • データベース接続が使用できない場合、NULL。

関連トピック