The MDSYS.SDO_CSW_PROCESSパッケージには、Catalog Services for the Web(CSW)のサポートに関連する各種処理操作を行うサブプログラムが含まれています。
この章で説明するサブプログラムを使用する場合は、Catalog Services for the Webの概念および使用方法を理解しておく必要があります(第16章を参照)。
表22-1にCSW処理のサブプログラムを示します。
表22-1 CSWの処理操作のサブプログラム
| サブプログラム | 説明 |
|---|---|
|
SDO_CSW_PROCESS.DeleteCapabilitiesInfo |
SDO_CSW_PROCESS.InsertCapabilitiesInfoプロシージャによって設定されている機能情報を削除します。 |
|
SDO_CSW_PROCESS.DeleteDomainInfo |
レコード・タイプに関連するドメイン情報を削除します。 |
|
SDO_CSW_PROCESS.DeletePluginMap |
レコード・タイプの空間コンテンツの処理と抽出を行うプラグインを登録解除します。 |
|
SDO_CSW_PROCESS.DeleteRecordViewMap |
レコード・ビューの変換に関連する情報を削除します。 |
|
SDO_CSW_PROCESS.GetRecordTypeId |
(名前空間およびタイプ名で指定された)タイプのレコード・タイプIDを取得します。 |
|
SDO_CSW_PROCESS.InsertCapabilitiesInfo |
機能テンプレート情報を挿入します。 |
|
SDO_CSW_PROCESS.InsertDomainInfo |
レコード・タイプに関連するドメイン情報を挿入します。 |
|
SDO_CSW_PROCESS.InsertPluginMap |
レコード・タイプの空間コンテンツの処理と抽出を行うプラグインを登録します。 |
|
SDO_CSW_PROCESS.InsertRecordViewMap |
レコード・ビューの変換に関連する情報を挿入します。 |
|
SDO_CSW_PROCESS.InsertRtDataUpdated |
データベースでレコード・タイプのデータが更新されたことを示す通知を挿入します。 |
|
SDO_CSW_PROCESS.InsertRtMDUpdated |
データベースでレコード・タイプのメタデータが更新されたことを示す通知を挿入します。 |
この章では、これらのサブプログラムのリファレンス情報をアルファベット順に説明します。
構文
SDO_CSW_PROCESS.DeleteCapabilitiesInfo();
説明
SDO_CSW_PROCESS.InsertCapabilitiesInfoプロシージャによって設定されている機能情報を削除します。
パラメータ
なし。
使用上の注意
Catalog Services for the Webのサポートについては、第16章を参照してください。
例
次の例では、SDO_CSW_PROCESS.InsertCapabilitiesInfoプロシージャによって設定されている機能情報を削除します。
BEGIN SDO_CSW_PROCESS.DeleteCapabilitiesInfo; END; /
構文
SDO_CSW_PROCESS.DeleteDomainInfo(
recordTypeId IN NUMBER,
propertyName IN VARCHAR2,
parameterName IN VARCHAR2);
説明
レコード・タイプに関連するドメイン情報を削除します。
パラメータ
レコード・タイプのIDを指定します。
プロパティの名前を指定します。
削除するドメイン・パラメータの名前を指定します。
使用上の注意
Catalog Services for the Webのサポートについては、第16章を参照してください。
例
次の例では、指定したレコード・タイプのresultTypeパラメータに関するドメイン情報を削除します。
DECLARE
rtId NUMBER;
BEGIN
rtId :=
sdo_csw_process.getRecordTypeId('http://www.opengis.net/cat/csw', 'Record');
sdo_csw_process.deleteDomainInfo(rtId, null, 'GetRecords.resultType');
END;
/
構文
SDO_CSW_PROCESS.DeletePluginMap(
rtnsUrl IN VARCHAR2,
rtName IN VARCHAR2);
説明
レコード・タイプのGML形式以外の空間コンテンツの処理と抽出を行うプラグインを登録解除します。
パラメータ
レコード・タイプの名前空間のURL(Uniform Resource Locator)を指定します。
レコード・タイプの名前を指定します。
使用上の注意
プラグイン(extractSDOファンクションのユーザー定義の実装)を登録するには、SDO_CSW_PROCESS.InsertPluginMapプロシージャを使用します。
extractSDOファンクションの作成方法と使用方法については、16.2.2項を参照してください。
Catalog Services for the Webのサポートについては、第16章を参照してください。
例
次の例では、プラグインを登録解除します。
BEGIN
SDO_CSW_PROCESS.deletePluginMap('http://www.opengis.net/cat/csw',
'Record');
END;
/
構文
SDO_CSW_PROCESS.DeleteRecordViewMap(
recordTypeNs IN VARCHAR2,
viewSrcName IN VARCHAR2,
targetTypeName IN VARCHAR2);
説明
レコード・ビューの変換に関連する情報を削除します。
パラメータ
レコード・タイプの名前空間のURLを指定します。
ソース・レコード・タイプの名前(BriefRecord、DCMIRecord、Record、SummaryRecordなど)を指定します。
ターゲット・レコード・タイプの名前(BriefRecord、DCMIRecord、Record、SummaryRecordなど)を指定します。
使用上の注意
Catalog Services for the Webのサポートについては、第16章を参照してください。
例
次の例では、ソース・レコード・タイプBriefRecordおよびターゲット・レコード・タイプRecordからレコード・ビューの変換に関連する情報を削除します。
BEGIN
SDO_CSW_PROCESS.deleteRecordViewMap('http://www.opengis.net/cat/csw',
'BriefRecord',
'Record');
END;
/
構文
SDO_CSW_PROCESS.GetRecordTypeId(
rtnsUrl IN VARCHAR2,
rtName IN VARCHAR2) RETURN NUMBER;
説明
(名前空間およびタイプ名で指定された)タイプのレコード・タイプIDを取得します。
パラメータ
レコード・タイプの名前空間のURL(Uniform Resource Locator)を指定します。
レコード・タイプの名前を指定します。
使用上の注意
Catalog Services for the Webのサポートについては、第16章を参照してください。
例
次の例では、Recordという名前のレコード・タイプのレコード・タイプIDを取得します。
DECLARE
rtId NUMBER;
BEGIN
rtId := SDO_CSW_PROCESS.getRecordTypeId('http://www.opengis.net/cat/csw',
'Record');
END;
/
構文
SDO_CSW_PROCESS.InsertCapabilitiesInfo(
capabilitiesInfo IN XMLTYPE);
説明
機能テンプレート情報を挿入します。
パラメータ
機能のドキュメントを生成するために実行時に使用される、機能テンプレートのXML文書を指定します。
使用上の注意
機能のドキュメントは、実行時に、CSWメタデータのフィーチャ・タイプ情報を機能テンプレートとバインディングすることによって動的に生成されます。機能のドキュメントについては、16.2.1項を参照してください。
Catalog Services for the Webのサポートについては、第16章を参照してください。
例
次の例では、機能テンプレート情報を挿入します。
BEGIN
SDO_CSW_PROCESS.insertCapabilitiesInfo(
xmltype(bfilename('CSWUSERDIR', 'cswloadcapabilities.xml'),
nls_charset_id('AL32UTF8')));
END;
/
構文
SDO_CSW_PROCESS.InsertDomainInfo(
recordTypeId IN NUMBER,
propertyName IN VARCHAR2,
parameterName IN VARCHAR2,
pValue IN MDSYS.STRINGLIST);
説明
レコード・タイプに関連するドメイン情報を挿入します。
パラメータ
レコード・タイプのIDを指定します。
ドメイン・プロパティの名前を指定します。
ドメイン・パラメータの名前を指定します。
parameterNameのパラメータ値を格納する文字列の配列を指定します。MDSYS.STRINGLIST型は、VARRAY(1000000) OF VARCHAR2(4000)として定義されます。
使用上の注意
Catalog Services for the Webのサポートについては、第16章を参照してください。
例
次の例では、Recordという名前のレコード・タイプのドメイン情報を挿入します。
DECLARE
rtId NUMBER;
BEGIN
rtId := SDO_CSW_PROCESS.getRecordTypeId(
'http://www.opengis.net/cat/csw', 'Record');
SDO_CSW_PROCESS.insertDomainInfo(rtId,
null,
'GetRecords.resultType',
MDSYS.STRINGLIST('hits', 'results', 'validate'));
END;
/
構文
SDO_CSW_PROCESS.InsertPluginMap(
rtnsUrl IN VARCHAR2,
rtName IN VARCHAR2,
pluginPackageName IN VARCHAR2);
説明
レコード・タイプのGML形式以外の空間コンテンツの処理と抽出を行うプラグインを登録します。
パラメータ
レコード・タイプの名前空間のURL(Uniform Resource Locator)を指定します。
レコード・タイプの名前を指定します。
プラグインのPL/SQLパッケージ・オブジェクトの名前を指定します。
使用上の注意
プラグインには、extractSDOファンクションのユーザー定義の実装が含まれている必要があります。プラグインは、レコードがGML形式ではない場合に必要となります。extractSDOファンクションの作成方法と使用方法の詳細は、16.2.2項を参照してください。
プラグイン・パッケージ(pluginPackageNameパラメータ)に対するEXECUTEアクセス権限を、ユーザーMDSYSおよびCSW管理ユーザーに付与する必要があります。
Catalog Services for the Webのサポートについては、第16章を参照してください。
例
次の例では、プラグインを登録します。
BEGIN
SDO_CSW_PROCESS.insertPluginMap('http://www.opengis.net/cat/csw',
'Record', 'csw_admin_usr.csw_RT_1_package');
END;
/
構文
SDO_CSW_PROCESS.InsertRecordViewMap(
recordTypeNs IN VARCHAR2,
viewSrcName IN VARCHAR2,
targetTypeName IN VARCHAR2,
mapInfo IN XMLTYPE,
mapType IN VARCHAR2);
説明
レコード・ビューの変換に関連する情報を挿入します。
パラメータ
レコード・タイプの名前空間のURLを指定します。
ソース・レコード・タイプの名前(BriefRecord、DCMIRecord、Record、SummaryRecordなど)を指定します。
ターゲット・レコード・タイプの名前(BriefRecord、DCMIRecord、Record、SummaryRecordなど)を指定します。
マッピングのXSLT定義を指定します。(BriefRecordタイプからRecordタイプへの変換については、この項の最後にある例のコメントを参照してください。)
マップ・タイプ(brief、summaryなど)を指定します。
使用上の注意
Catalog Services for the Webのサポートについては、第16章を参照してください。
例
次の例では、BriefRecordタイプからRecordタイプへの変換に関連する情報を挿入します。
create or replace directory CSWUSERDIR as 'dir_path_where_mapinfo.xsl_file_is_located' ;
/*
// Content of mapinfo.xsl could be that which transforms
// all <csw:BriefRecord> node to <csw:Record> node, where csw is
// the namespace alias for "http://www.opengis.net/cat/csw"
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:csw="http://www.opengis.net/cat/csw">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
<xsl:template match="/">
<csw:Record xmlns:csw="http://www.opengis.net/cat/csw" xmlns:dc="http://www.purl.org/dc/elements/1.1/" xmlns:ows="http://www.opengis.net/ows" xmlns:dct="http://www.purl.org/dc/terms/">
<xsl:apply-templates select="@*│node()"/>
</csw:Record>
</xsl:template>
<xsl:template match="csw:BriefRecord">
<xsl:apply-templates select="@*│node()"/>
</xsl:template>
<xsl:template match="@*│node()">
<xsl:copy>
<xsl:apply-templates select="@*│node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
*/
DECLARE
rtId NUMBER;
BEGIN
SDO_CSW_PROCESS.insertRecordViewMap('http://www.opengis.net/cat/csw',
'BriefRecord',
'Record',
xmltype(bfilename('CSWUSERDIR', 'mapinfo.xsl'), nls_charset_id('AL32UTF8')),
'brief');
END;
/
構文
SDO_CSW_PROCESS.InsertRtDataUpdated(
ns IN VARCHAR2,
name IN VARCHAR2,
updatedRowList IN ROWPOINTERLIST,
updateTs IN TIMESTAMP);
説明
データベースでレコード・タイプのデータが更新されたことを示す通知を挿入します。
パラメータ
レコード・タイプの名前空間を指定します。
レコード・タイプの名前を指定します。
更新された行の行IDのリストを指定します。
データが更新された日時を示すタイムスタンプ値を指定します。
使用上の注意
このプロシージャは、CSWのキャッシュ・データを同期させるために使用します。これは、MDSYS.CSW_RECORD_TYPES$システム表に問合せを行います。
Catalog Services for the Webのサポートについては、第16章を参照してください。
例
次の例では、指定したレコード・タイプについて、特定の行IDに関連付けられている行のデータが更新されたことを示す通知を挿入します。
BEGIN
updatedRowIdList:= . . . -- list of rowIds that have been updated
-- in the table referred to by the dataPointer column of the
-- mdsys.CSW_Record_Types$ table for the row whose
-- typeNameNS column value is 'http://www.opengis.net/cat/csw' and
-- typeName column value is 'Record'
. . .
SDO_CSW_PROCESS.insertRtDataUpdated('http://www.opengis.net/cat/csw',
'Record', updatedRowIdList, sysdate);
. . .
END;
/
構文
SDO_CSW_PROCESS.InsertRtMDUpdated(
ns IN VARCHAR2,
name IN VARCHAR2,
updateTs IN TIMESTAMP);
説明
データベースでレコード・タイプのメタデータが更新されたことを示す通知を挿入します。
パラメータ
レコード・タイプの名前空間を指定します。
レコード・タイプの名前を指定します。
メタデータが更新された日時を指定します。
使用上の注意
このプロシージャは、WFSのキャッシュ・メタデータを同期させるために使用します。
Catalog Services for the Webのサポートについては、第16章を参照してください。
例
次の例では、データベースでRecordレコード・タイプのメタデータが更新されたことを示す通知を挿入します。
BEGIN
SDO_CSW_PROCESS.insertRtMDUpdated('http://www.opengis.net/cat/csw',
'Record', sysdate);
END;