プライマリ・コンテンツに移動
Oracle® Spatial and Graph開発者ガイド
12cリリース1 (12.1)
B72470-07
目次へ移動
目次
索引へ移動
索引

前
次

16.2 CSWのAPIおよび構成

CSWのAPIを使用すると、次のような操作を実行できます。

PL/SQL API(SDO_CSW_PROCESSパッケージ)は「SDO_CSW_PROCESSパッケージ(CSWの処理)」、XMLリクエストおよびレスポンスの例は「XMLのリクエストおよびレスポンス例」、Java APIは「CSWの管理用のJava API」を参照してください。

16.2.1 機能のドキュメント(CSW)

クライアントはサーバーの機能に関する情報を取得できます。機能のドキュメントは、GetCapabilitiesリクエストに対するレスポンスとしてCSWサーバーにより生成されます。機能のドキュメントには、Oracleデータベースに保存されているCSWメタデータから抽出された情報が含まれています(レコード・タイプとサポートされる操作のタイプを含む)。

クライアントは、HTTP GET、POSTおよびSOAPプロトコルを使用してこの機能ドキュメントにアクセスできます。次の例では、HTTPプロトコルを使用しています。

http:///<machine-name:port>/oraclespatial/csw?request=GetCapabilities&service=CSW&acceptversion=2.0.0&outputFormat=text/xml

次に、前述の書式について説明します。

  • machine-nameは、アプリケーション・サーバーが実行されているシステムの名前です。

  • portは、アプリケーション・サーバーが実行されているポートの番号です。

  • oraclespatialは、Oracle Spatial and GraphのWebサービス・アプリケーションがマウントされるデフォルトのrootです。

16.2.2 空間パス抽出ファンクション(extractSDO)

GML形式ではない空間コンテンツをCSWで処理する必要がある場合は、その空間パス情報を抽出するためにextractSDOという名前のユーザー定義のファンクションを作成する必要があります。このファンクションは、GML以外の形式の空間コンテンツが使用され空間索引を作成する対象となるレコード・タイプごとに実装する必要があります。(レコード・タイプのすべての空間コンテンツがGML形式の場合、このファンクションは必要ありません。)

また、「extractSDOファンクションの登録および登録解除」で説明されているとおりに、このファンクションを登録する必要があります。これにより、GML形式ではない空間パス・コンテンツを抽出する必要がある場合、Oracle Spatial and Graph CSWサーバーでは、このファンクションを検索および起動することができます。

extractSDOファンクションの書式は次のとおりです。

extractSDO(

     xmlData                   IN XMLType,      srsNs                       IN VARCHAR2,      spPathsSRSNSList  IN MDSYS.STRINGLISTLIST);      ) RETURN MDSYS.SDO_GEOM_PATH_INFO;

パラメータ

xmlData

空間パス情報を抽出する必要のあるレコード・インスタンスのデータを指定します。

srsNs

フィーチャ・タイプの空間データと関連付けられた空間参照システム(座標系)のユーザー定義の名前空間を指定します。この名前空間は(指定されている場合)、GetFeatureリクエストに対する回答として生成されるFeatureCollectionの<boundedBy>要素内のsrsName属性を生成するときにも使用されます。

spPathsSRSNSList

異なる空間パスに関連付けられたユーザー定義の空間参照システム名前空間が1つのレコード・タイプに複数ある場合、このパラメータには、タイプの登録時に指定された異なる空間パスに対応する空間参照システム名前空間情報のリストを指定します。これはMDSYS.STRINGLISTLIST型のオブジェクトで、VARRAY(1000000) OF MDSYS.STRINGLISTとして定義されます。また、MDSYS.STRINGLIST型はVARRAY(1000000) OF VARCHAR2(4000)として定義されます。異なる空間列に関連付けられたユーザー定義の空間参照システム名前空間が、1つのレコードに複数存在しない場合は、このパラメータはNULLにする必要があります。

各MDSYS.STRINGLISTオブジェクトの最初の要素は空間参照システム名前空間で、2つ目の要素は空間参照システム名前空間の別名です(別名がある場合)。

使用上の注意

このファンクションではGML以外の空間コンテンツが解析され、MDSYS.SDO_GEOM_PATH_INFO型のオブジェクトが戻されます。このオブジェクト型の定義は次のとおりです。

(path     MDSYS.STRINGLIST,
 geom     SDO_GEOMETRY,
 arrindex NUMBER)

path属性には、抽出してgeom属性に格納する空間コンテンツのパスを指定します。これは、MDSYS.STRINGLIST型のオブジェクトで、VARRAY(1000000) OF VARCHAR2(4000)として定義されます。パス属性のパターンは、MDSYS.STRINGLIST('pe_namespace1','pe_name1', 'pe_namespace2','pe_name2',...);です。次に各項目について説明します。

  • pe_namespace1は、1つ目のパス要素の名前空間です。

  • pe_name1は、1つ目のパス要素の名前です。

  • pe_namespace2は、2つ目のパス要素の名前空間です。

  • pe_name2は、2つ目のパス要素の名前です。

  • 同様に、残りの名前空間と名前の組合せを指定します。

パスに含まれる/typeNameNSAlias:typeName/pe_namespace1_Alias:pe_name1/pe_namespace2_Alias:pe_name2...は、空間コンテンツのXPathをGML以外の形式で表現したもので、ユーザー定義ファンクションextractSDOによって抽出されます。

  • typeNameNSAliasは、レコード・タイプ名の名前空間の別名です。

  • typeNameは、レコード・タイプのタイプ名です。

  • pe_namespace1_Aliasは、名前空間pe_namespace1の別名です。

  • pe_namespace2_Aliasは、名前空間pe_namespace2の別名です。

geom属性は、SDO_GEOMETRYオブジェクトとして抽出される(pathパラメータに対応する)空間コンテンツです。抽出されたジオメトリには、空間索引を使用して索引付けを行うことができます。

現在、arrindex属性は使用されていないため、1に設定する必要があります。(パスの配列索引として将来使用するために予約されています。)

16.2.2.1 extractSDOファンクションの登録および登録解除

extractSDOファンクションを作成した後は、GML形式ではないレコード・タイプに含まれる空間パス・コンテンツの処理に使用できるように、このファンクションを登録する必要があります。ファンクションを登録するには、SDO_CSW_PROCESS.InsertPluginMapプロシージャをコールします。次に例を示します。

BEGIN
  SDO_CSW_PROCESS.insertPluginMap('http://www.opengis.net/cat/csw',
    'Record', 'csw_admin_usr.csw_RT_1_package');
END;
/

GML形式でない空間パス・コンテンツの処理にextractSDOファンクションを使用する必要がなくなった場合は、SDO_CSW_PROCESS.DeletePluginMapプロシージャをコールしてこのファンクションの登録を解除できます。次に例を示します。

BEGIN
  SDO_CSW_PROCESS.deletePluginMap('http://www.opengis.net/cat/csw', 
    'Record');
END;
/