18 Catalog Services for the Web(CSW)のサポート

Oracle Spatial and Graphは、OpenGISコンソーシアム仕様のカタログ・サービスを実装しています。

ノート:

Oracle Cloud MarketplaceからOracle Spatial Webサービスをデプロイできます。このパッケージ・アプリケーションを使用すると、Oracle Cloud Infrastructure (OCI)上のApache Tomcat Webサーバー・インスタンスにデプロイされたOracle Spatial Webサービス(Web Feature Service (WFS)、Web Coverage Services (WCS)およびCatalog Services for the Web (CSW))をインストールできます。

この仕様によると、カタログ・サービスは、データ、サービスおよび関連する情報オブジェクトについての記述情報(メタデータ)の集合をパブリッシュおよび検索する機能をサポートしています。カタログ内のメタデータは、ユーザーとソフトウェアの両方によって評価したり、詳細な処理を行う目的で、問合せや配置が可能なリソース特性を示します。カタログ・サービスは、情報コミュニティ内に登録された情報リソースの検索およびバインドをサポートする必要があります。

ここでは、Oracle Spatial and Graph実装をCatalog Services for the Web (CSW)と呼びます。

ノート:

リリース18.1より、CSWのOracle Spatial and Graphの実装では、次のレコード・タイプ(メタデータ・プロファイル)のいずれかを使用するCSWデータをサポートします。

  • DCMI (Dublin Core Metadata Initiative)

  • ISO (ISO標準19139)

CSWデータのレコード・タイプは、SDO_CSW.INITIALIZE_CSWプロシージャへのコールでcsw_xsd_idパラメータ値(DCMIの場合は1、ISOの場合は2)に指定します。

各レコード・タイプの使用の詳細は、「CSWの主要な操作(DCMIプロファイル)」および「CSWの主要な操作(ISOプロファイル)」を参照してください。

CSWを使用する前に、「空間Webサービスの概要」で説明されている概念を理解し、その章での説明に従って必要な構成作業を実行しておく必要があります。

18.1 CSWエンジンおよびアーキテクチャ

このトピックでは、CSWについて、クライアントとの関係およびデータベース・サーバーとの関係も含めて説明します。

CSWはJava Webアプリケーションとして実装され、WebLogic 12.1.3以上にデプロイできます。必要なJavaバージョンはJDK 1.8以降です。

CSWにはメタデータ層があります。この層では、カタログ・リクエストへの応答で必要とされるメタデータがデータベースに格納されます。メタデータには空間列が含まれており、Oracle Spatial and Graphインタフェースを使用して空間列の問合せおよび処理が可能です。メタデータには、レコードの非空間属性と空間属性の関連付け、およびカタログ・サービスからクライアントに提供されるサービスも格納されます。

図18-1に、CSWのアーキテクチャを示します。

図18-1 CSWのアーキテクチャ

図18-1の説明が続きます
図18-1「CSWのアーキテクチャ」の説明

次に、図18-1について説明します。

  • CSWは、中間層のコンテナの一部です。

  • CSWでは、SOAP/XML/KVP形式のCSWリクエストおよびレスポンスを使用して、Webサービス・クライアントと通信できます。

  • CSWでは、データベースに対するJDBCコールを介して空間データおよびメタデータへのアクセスが実行されます。

  • データベースには、CSWのメタデータおよびデータとともにOracle Spatial and Graphが含まれます。

18.2 CSWのデータベース・スキーマとオブジェクト

CSWスキーマは、CSWレコードの格納に使用する任意のユーザー・スキーマです。このドキュメントの一部の例で使用される、SCOTTまたはMDMETTという名前のデータベース・ユーザーはCSWスキーマです。

CSWデータベース・インスタンスは、CSWスキーマにCSWカタログ・レコードを格納します。CSW Webサービス・インスタンスには、アプリケーション・コンテナ内でJDBCデータ・ソースとして構成されたCSWスキーマが1つ以上必要であり、各CSWスキーマはWebLogic Serverの1つのデータ・ソースに対応します。通常、特定のデータベースに対して構成されるCSWスキーマは1つのみですが、多数のCSW Webサービスを構成し、同一のデータベースで異なるCSWスキーマと組み合せて使用できます。

Oracle Spatial and Graphには、サポートされるCSW recordTypeのCSWメタデータを含むビューUSER_SDO_CSW_SERVICE_INFOが用意されています。USER_SDO_CSW_SERVICE_INFOビューには次の列があります。

CSW_VERSION     VARCHAR2(20),             
CSW_XSD_ID      NUMBER,              
CSW_TABLE_NAME  VARCHAR2(80)

このビューのCSW_XSD_ID列値を調べて、CSWスキーマで使用されるCSW recordTypeを確認できます(DCMIの場合は1、ISOの場合は2)。(各レコード・タイプの使用の詳細は、「CSWの主要な操作(DCMIプロファイル)」および「CSWの主要な操作(ISOプロファイル)」を参照してください。)

SDO_CSW PL/SQLパッケージでは、CSWインスタンスの作成やその他の操作を実行できます。これにはCSWが含まれ、SpatialおよびXQFT索引を作成および維持できます。サブプログラムのリファレンス情報については、「SDO_CSWパッケージ(Catalog Services for the Web)」を参照してください。

18.3 CSWエンジンの構成とデプロイ

このトピックでは、Catalog Services for the Web(特にCSW 2.0.2)の構成およびデプロイにフォーカスします。

「空間Webサービスのデプロイと構成」に記載の必要な操作を行っていることを確認してください。

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

  • レコード・タイプ・ドメインおよびレコード・ビューの変換に関する情報の指定

  • DCMI (Dublin Core Metadata Initiative)レコードまたはISOレコード用のUSER_SDO_CSW_SERVICE_INFO表への移入

  • USER_SDO_CSW_SERVICE_INFO表からの削除によるレコード・タイプのパブリッシュの解除

  • CSWレコード・タイプおよびXML Query Full Textコンテキスト索引に対する権限のユーザーへの付与および取消し

CSWエンジンの構成には次の処理が伴います。

CSWの初期化

CSWを初期化する前に、次の権限をCSWスキーマに付与する必要があります。ここでは、MDMETTという名前のデータベース・ユーザーのスキーマがCSWスキーマです。

GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE, CTXAPP TO MDMETT;
GRANT EXECUTE ON CTXSYS.CTX_DDL TO MDMETT;
GRANT SELECT ON MDSYS.SDO_XSD_TABLE TO MDMETT;
GRANT SELECT,ALTER ON MDSYS.md_identifier_sq$ TO MDMETT;

Oracle Spatial and GraphでCatalog Services for the Webを使用するには、SDO_CSW.INITIALIZE_CSWプロシージャをコールしてCSW 2.0.2サービスを初期化する必要があります。このプロシージャでは、ユーザー表がまだない場合は作成され、索引が準備されます。たとえば:

DECLARE
BEGIN
sdo_csw.initialize_csw(
  'MDMETT',
  '2.0.2', -- must be 2.0.2
  1, -- for DCMI
  'MY_CSW_CATALOG_TABLE',
  4326,
  1
  );
  END;
  /

CSWデータベース・インスタンスがインスタンス化されていない場合、SDO_CSW.INITIALIZE_CSWプロシージャをコールします。このプロシージャでCSWスキーマが初期化され、CSWカタログ表と適切な索引が存在しなければそれらが作成されます。たとえば、前述の例では、MDMETTスキーマをCSWスキーマとして有効にし、CSWカタログ表としてMY_CSW_CATALOG_TABLE表を作成して、この表に(空間およびXML Query Full Text)索引を作成します。

SDO_CSW.INITIALIZE_CSWプロシージャは、CSWカタログ表と必要な索引がすでに存在する場合は、CSWスキーマとカタログ表の単なる登録のみにも使用できます。詳細と例については、「SDO_CSW.INITIALIZE_CSW」リファレンス・トピックを参照してください。

CSWデータ・ソースの設定

CSWスキーマを作成したら、次のようにしてWebLogic ServerでCSWエンジンのデータ・ソースを設定します。

  1. WebLogic Serverコンソールにログインします。

  2. 左側のペインの「ドメイン構造」「データ・ソース」を選択します。

  3. 「新規」「汎用データ・ソース」の順にクリックします。

  4. 「新規JDBCデータ・ソースの作成」ページで、次のように指定します。

    1. 名前: CSW_ADMIN_CONN(または任意の名前)

    2. JNDI名: jdbc/csw_admin_ds

    3. データベースのタイプ: Oracle

  5. データベース・ドライバ「Oracle Driver (Thin) for Instance Connections; Versions: Any」を選択します。

  6. 「グローバル・トランザクションのサポート」を省略します

  7. 「接続プロパティ」ページで、次の指定を行います。

    1. データベース名

    2. ホスト名

    3. ポート

    4. データベース・ユーザー名(つまり、CSWスキーマ名)

    5. パスワード

  8. 次のページで、この接続をテストします。

  9. 接続が正常の場合、このデプロイメントに対して適切なサーバー名(AdminServerまたは管理対象サーバー名)を選択します。

  10. 作成したデータ・ソースが認識されるようWLSを再起動するか、少なくともsdowsアプリケーションを再起動します。

ノート:

各データベースではCSWスキーマを複数保持でき、各スキーマはWebLogic Serverの1つのデータ・ソースに対応します。また、WebLogic Serverでは、CSW用に構成されたデータ・ソースを複数保持できます。各データ・ソースには異なるURLを介してアクセスでき、URLの最後の部分はWebLogic Serverの構成されたデータ・ソース名に対応します。cswdata1という名前のCSWデータ・ソースを使用したサンプル・リンクを次に示します。

http://localhost:80/oraclespatial/csw/cswdata1?service=CSW& version=2.0.2&request=GetCapabilities

CSWConfig.xmlファイルの編集

CSW管理コンソールを使用して、次の設定の一部またはすべてを変更する必要がある場合あります。

  • log_levelOFFSEVEREWARNINGINFO(デフォルト)、CONFIGFINEFINERFINESTALLを指定できます(ログ・ファイルに格納される情報量はこの順に多くなります)。

  • size_limit。ログ・ファイルに書き込むおおよその最大量(メガバイト)を指定する整数。この値を超えると、新しいファイルが作成され、ログ・ローテーションが行われます。size_limitが0(ゼロ)の場合、無制限です。デフォルト値は10です。

  • file_count。循環する出力ファイル数を指定します。ログ・ファイルが占めるディスク領域を制限するために古いログ・ファイルが削除されます。デフォルト値は10です。

  • ServiceIdentificationおよびServiceProvider。CSW GetCapabilitiesレスポンスで配信する適切な内容を提供します。この2つの値を、Oracle Spatial and Graph CSWサービスが提供するデフォルト値以外の値にする必要がある場合、CSW GetCapabilitiesレスポンスで正しい情報が戻されるためには、コメントを解除して必要な編集を行う必要があります。このセクションがコメント設定のままの場合、デフォルトの内容がクライアント側に配信されます。

CSWのデータのロード

Oracle Spatial and Graphに含まれるクライアント側Javaローダーは、次の.jarファイル内にあります(Spatial and Graphのデフォルト・インストール・ディレクトリ$ORACLE_HOME/mdを使用するものとします)。

$ORACLE_HOME/md/jlib/sdocswloader.jar

CSWスキーマを初期化したら、sdocswloader.jar Javaパッケージを使用してCSW 2.0.2データをロードできます。このパッケージは、CSW XMLレコードを含む大規模なファイルを取り込み、ユーザーCSW表にロードします。このパッケージの使用方法の詳細は、「CSW 2.0.2データのロード(DCMI)」 (DCMIプロファイルの場合)および「CSW 2.0.2データのロード(ISO)」 (ISOプロファイルの場合)を参照してください。

CSWのデプロイのテスト

CSWエンジンをデプロイし、データ・ソースを作成したら、CSWエンジンのテスト問合せのセットでデプロイメントをテストできます。次の例は、CSW 2.0.2のGetCapabilities問合せです。

http://machine-name:port/oraclespatial/csw/<data source name>?request=GetCapabilities&service=CSW&version=2.0.2

SpatialおよびXQFT索引の作成およびメンテナンス

空間索引およびXML Query Full Text (XQFT)索引を手動で作成または維持する必要がある場合があります。これらの索引は、SDO_CSW.INITIALIZE_CSWプロシージャの最初の構文によって自動的に作成され(存在しない場合)、手動で作成する必要はありません。ただし、次のシナリオのように索引を削除して再作成したり、索引を同期化する必要がある場合があります。

  • シナリオ1: SDO_CSW.INITIALIZE_CSWプロシージャを使用した際、空間索引の作成が正常に完了しませんでした。

  • シナリオ2: SDO_CSW.CREATE_SPATIAL_IDXプロシージャをコールした際、空間索引の作成が正常に完了しませんでした。

  • シナリオ3: 「索引を含むパーティションの交換」に記載のようななんらかの理由で空間索引が無効になります

  • シナリオ4: CSWユーザー・データ表に対する大幅な挿入、更新または削除操作がありました。

シナリオ1、2または3の理由で空間索引を再作成または再構築する必要がある場合、まず(SQL文DROP INDEX <index_name> [FORCE]を使用して)空間索引を削除し、SDO_CSW.CREATE_SPATIAL_IDXプロシージャを使用して空間索引を再作成する必要があります。

シナリオ4の場合、XQFT索引に対してSDO_CSW.SYNC_INDEXをコールする方が速いです。この場合、既存のXQFT索引が自動的に更新されます。ただし、XQFT索引を再作成する必要がある場合、SDO_CSW.CREATE_XQFT_IDXプロシージャをコールして既存のXQFT索引を削除し、新しい索引を作成できます。

18.4 機能のドキュメント(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サービス・アプリケーションがマウントされるデフォルト・ルートです。

18.5 CSWの主要な操作(DCMIプロファイル)

このトピックでは、CSWデータのロードおよび問合せについて説明し、各種操作のリクエストおよびレスポンスの例を示します。これは、DCMIレコード・タイプを使用するCSWデータの使用に当てはまります。

CSWデータでDCMI (Dublin Core Metadata Initiative)プロファイルが使用されている場合は、各レコードのrecordType属性の値は1となります。

SDO_CSW.INITIALIZE_CSWプロシージャをコールする際、CSWデータのレコード・タイプをcsw_xsd_idパラメータ値(DCMIの場合は1、ISOの場合は2)に指定します。

ビューUSER_SDO_CSW_SERVICE_INFOには、サポートされているCSW recordTypeのCSWメタデータが格納されます(「CSWのデータベース・スキーマとオブジェクト」を参照)。

18.5.1 CSW 2.0.2データのロード(DCMI)

CSWスキーマの初期化時にCSW表を作成したら、この表へのCSW 2.0.2データ(DCMIレコード)のロードを開始できます。

Oracle Spatial and Graphには、この目的で$ORACLE_HOME/md/jlib/sdocswloader.jarというクライアント側ローダーが用意されています(Spatial and Graphのデフォルト・インストール・ディレクトリ$ORACLE_HOME/mdを使用するものとします)。

sdocswloader.jarパッケージを使用すると、CSW XMLレコードを含む大規模なファイルを取り込み、CSW表にロードできます。たとえば、多数のDCMIレコードを含むcsw_records1.txt、csw_records2.txtおよびcsw_records3.txtの3つのXMLファイルがあるとします。次のステップに従ってCSW表にロードします。

  1. sdo_csw_demo.xmlという名前(または任意の名前)の次の例のようなXML構成ファイルを作成します。

    <?xml version='1.0' encoding='windows-1252'?>
    <Connection>
      <Driver>Thin</Driver>
      <Hostname>localhost</Hostname>
      <Port>52504</Port>
      <ServiceName>SERVICENAME </ServiceName>
      <ServerMode>DEDICATED</ServerMode>
      <Schema>MDMETT</Schema>
      <Password>MDMETT</Password>
      <!-- Requires access to V$MYSTAT and V$SESS_TIME_MODEL -->
      <logServerStats>true</logServerStats>
      <clientSideEncoding>true</clientSideEncoding>
      <!-- SAX : for Splitting Large XML Files into smaller Files -->
      <!-- FOLDER : for walking a client side directory tree loading Files -->
      <mode>SAX</mode>
      <Pool>false</Pool>
      <Namespaces 
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                    xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
                    xmlns:dc="http://purl.org/dc/elements/1.1/"
                    xmlns:dct="http://purl.org/dc/terms/"
                    xmlns:gml="http://www.opengis.net/gml"
                    xmlns:ogc="http://www.opengis.net/ogc"
                    xmlns:ows="http://www.opengis.net/ows"
                    xmlns:xi="http://www.w3.org/2001/XInclude"
                    xmlns:xlink="http://www.w3.org/1999/xlink"
                    xmlns:xs="http://www.w3.org/2001/XMLSchema"
                    xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
      <!-- List of Files to be processed -->
      <FileList>
        <!-- replace the following with full file path names for the records -->
        <File>csw_records1.txt</File>
        <File>csw_records2.txt</File>
        <File>csw_records3.txt</File>
      </FileList>
      <Tables>
        <Table name=”CSW CATALOG TABLE_NAME” path="/root/csw:Record">
            <Column name="XML_COLUMN" path="/root/csw:Record” type="xml"/>
            <Column name="METADATA_ID" path="/root/csw:Record/dc:identifier" type="string"/>
        </Table>
      </Tables>
        <!-- Each Writer process will commit its workload after this number of inserts -->
      <CommitCharge>100</CommitCharge>
      <!-- Number of Concurrent Writer Threads -->
      <ThreadCount>10</ThreadCount>
      <!—replace the following with full file path name for the logger -->
      <LogFileName>csw_records.log</LogFileName>
      <ErrorTable>CSW_ERROR_TABLE_NAME</ErrorTable>
      <schemaInstancePrefix>xsi</schemaInstancePrefix>
      <schemaLocation/>
      <noNamespaceSchemaLocation/>
    </Connection>
    

    この構成ファイルでローダーはDCMI名前空間でDCMIレコードを処理できます。

    このファイルのusernameパラメータは、CSWスキーマ名を参照します。

    Table名は移入先のCSW表です。1つ目のColumn名はOracle XMLTypeオブジェクトとしてレコードを格納するCSW表内の列で、2つ目のColumn名はレコードID値を格納するCSW表内の列です。

    ノート:

    表およびログ・ディレクトリが存在しない場合、(次のステップで)XMLLoaderを実行する前に次のようにします。

    1. エラーのログを含めるCSW_ERROR_TABLE_NAMEをCSWスキーマに作成します。たとえば、CREATE TABLE CSW_ERROR_TABLE of XMLTYPE;です

    2. logという名前のディレクトリを作成します。ここにcsw_records.logファイルが作成されます。

  2. 次の例に示すようなrunXMLLoader.shファイル(Linuxの場合)またはrunXMLLoader.batファイル(Windowsの場合)を作成します。

    • Linux: runXMLLoader.sh

      PATH=$ORACLE_HOME/jdk/bin:$PATH
      java -Xmx2048M -classpath "$ORACLE_HOME/md/jlib/sdocswloader.jar:$ORACLE_HOME/lib/xmlparserv2.jar:$ORACLE_HOME/jdbc/lib/ojdbc8.jar:$ORACLE_HOME/rdbms/jlib/xdb8.jar" -Doracle.spatial.xmlloader.ConnectionParameters= /mydir/sdo_csw_demo.xml oracle.spatial.xmlloader.saxLoader.XMLLoader
      
    • Windows:runXMLLoader.bat

      set ORACLE_HOME=e:\app\oracle\product\12.2.0\dbhome_1
      set PATH=%ORACLE_HOME%\jdk\bin;%PATH%
      java -cp %CD%\XMLLoader.jar;%ORACLE_HOME%\lib\xmlparserv2.jar;%ORACLE_HOME%\jdbc\lib\ojdbc8.jar;%ORACLE_HOME%\jdbc\lib\ojdbc8dms.jar;%ORACLE_HOME%\rdbms\jlib\xdb8.jar -Doracle.spatial.xmlloader.ConnectionParameters=%1 oracle.spatial.xmlloader.saxLoader.XMLLoader
      

    これらのファイルではsdo_csw_demo.xmlファイルを使用し、JDKは1.8であるものとします。Java環境が異なる場合、ファイルを修正する必要があります。システム環境に合せて構成ファイルおよび関連スクリプト・ファイルに他の変更を加える必要がある場合があります。

この例のシナリオでは、runXMLLoader.shまたはrunXMLLoader.batを実行すると、CSW表に3つのCSW 2.0.2データ・ファイルのレコードが移入されます。

18.5.2 CSW 2.0.2データの問合せ(DCMI)

CSWデータの問合せに対して、このトピックで説明する問合せ可能要素を使用したGetCapabilities、DescribeRercordおよびGetRecords CSWリクエストがサポートされています。

次の表に、DCMI形式のCSWデータを問い合せるための問合せ可能要素を示します。問合せの要素ごとに、要素のDCMI名を簡単な説明とともに示します。

表18-1 DCMI用の問合せ可能要素

DCMI名 説明

csw:AnyText

カタログでの文字データ型の全文検索のターゲット

dc:contributor

リソースのコンテンツを提供するエンティティ。

dc:coverage

リソースの空間または時間のトピック、リソースの空間適用性、リソースが関連する管轄区域。

dc:creator

リソースのコンテンツの作成を主に担うエンティティ。

dc:date

メタデータ・リソースの作成または更新イベントの日付。

dc:description

リソースのアカウント。

dc:format

リソースの物理実体化またはデジタル実体化。

dc:identifier

特定のコンテキスト内でのリソースへの一義的な参照。

dc:language

リソースの知的コンテンツの言語。

dc:publisher

リソースを使用可能にするエンティティ。これは、ISOおよびFGDCメタデータにおけるディストリビュータに相当します。

dc:relation

関連リソースへの参照。

dc:rights

リソース内で保持される権限とリソース全体で保持される権限に関する情報

dc:source

現在のリソースの導出元となるリソースへの参照。

dc:subject

リソースのコンテンツのトピック。これは、トピック・カテゴリまたはその他のタクソノミを適用できる場所です。

dc:title

リソースに付けられた名前。"名前"とも呼ばれます。

dc:type

リソースのコンテンツの性質またはジャンル。

dct:abstract

リソースのコンテンツの説明。これは、OGC、FGDCおよびISOメタデータのその他の側面では"要約"とも呼ばれます。

dct:modified

リソースが最後に変更された日付

dct:spatial

リソースのコンテンツの空間エクステントまたはスコープ。

ows:BoundingBox

境界ボックス

csw:Constraint要素でcws:ElementName要素またはcsw:ElementSetName要素とともに使用できる問合せ可能要素は、次のモードに分類できます。

  • Brief (OGC CSW 2.0.2仕様で指定されている簡易モード)

  • Summary (OGC CSW 2.0.2仕様で指定されている要約モード)

  • Full(常に完全な元のDCMIレコードを戻します)

csw:ElementySetName要素は、モード(briefsummaryまたはfull)を指定します。csw:ElementName要素は、モードを指定しませんが、問合せ可能要素の名前を指定します。

Briefモードの問合せ可能要素は次のとおりです。

dc:identifier
dc:title
dc:type
ows:BoundingBox

Summaryモードの問合せ可能要素は次のとおりです。

dc:format
dc:identifier
dc:relation
dc:subject
dc:title
dc:type
dct:abstract
dct:modified
ows:BoundingBox

Fullモードの問合せ可能要素はすべて、OGC仕様とBriefおよびSummaryモードでサポートされています。Fullモードと他のモードの相違点は、Fullモードでは問合せは常に完全な元のDCMIレコードを戻すのに対し、他のモードではcsw:Constraint要素で指定された要素のみを戻します。

Fullモードの問合せ可能要素は次のとおりです。

csw:AnyText
dc:contributor
dc:coverage
dc:creator
dc:date
dc:description
dc:format
dc:identifier
dc:language
dc:publisher
dc:relation
dc:rights
dc:source
dc:subject
dc:title
dc:type
dct:abstract
dct:modified
dct:spatial
ows:BoundingBox

ISO問合せ可能要素および一部の特殊なケースに関する使用上のノートは、次のとおりです。

  • gmd:date問合せ可能要素は、gmd:modified問合せ可能要素と同じです。CSWリクエストでは、いずれか一方を使用します。

  • gmd:formatおよびgmd:formatVersion: ElementNameモードでは、distributionFormatノード付きのパスとみなします。Summary、ComprehensiveおよびFullのElementSetNameモードでも、distributorFormatノードとみなします。Briefモードには、このような問合せ可能要素がありません。

  • gmd:hasSecurityConstraints問合せ可能要素には、次の値のみを使用できます(これらの値以外のデータはないことになっているため、これらの値を使用してください): unclassified、restricted、confidential、secret、topSecret。

  • gmd:keywordType問合せ可能要素には、次の値のみを使用できます(これらの値以外のデータはないことになっているため、これらの値を使用してください): discipline、place、stratum、temporal、theme。

  • gmd:referenceSystem: これは、referenceSystem、code、codeSpaceおよびversion問合せ可能要素による和集合問合せ可能要素です。referenceSystem (code問合せ可能要素の別名)、code、codeSpace、version問合せ可能要素のいずれかをCSWリクエストのcsw:ElementName要素で使用すると、これらすべてがISOレコードの結果セットに存在する場合、レスポンス(要するに"related to"説明)に表示されます。csw:Constraint要素では、これらの問合せ可能要素をいずれも使用できます。

  • gmd:spatialResolution: これも、spatialResolution、denominator、distanceおよびdistanceUOM問合せ可能要素による和集合問合せ可能要素です。spatialResolution (denominator問合せ可能要素の別名)、denominator、distance、distanceUOMのいずれかをCSWリクエストのcsw:ElementName要素で使用すると、これらすべてがISOレコードの結果に存在する場合、レスポンス(要するに"related to"説明)に表示されます。csw:Constraint要素では、これらの問合せ可能要素をいずれも使用できます。

  • gmd:topicCategory問合せ可能要素には、次の値のみを使用できます(これらの値以外のデータはないことになっているため、これらの値を使用してください): farming、biota、boundaries、climatologyMeteorologyAtmosphere、economy、elevation、environment、geoscientificInformation、health、imageryBaseMapsEarthCover、intelligenceMilitary、inlandWaters、location、oceans、planningCadastre、society、structure、transportationおよびutilitiesCommunication。

  • ogc:Notロジックは、csw:Constraint、ogc:Filter、ogc:Not、ogc:PropertyIsLikeに対してのみサポートされます。

  • PropertyIsNullは、revisionDate、publicationDate、creationDate、contributor、creatorまたはpublisher問合せ可能要素に対してサポートされません。

  • srv:operatesOnData: これも、operatesOn、operatesOnIdentifier、operatesOnName問合せ可能要素による和集合問合せ可能要素です。これは、前述の和集合とは少し異なります。operatesOnの処理が、operatesOnIdentifierおよびoperatesOnName問合せ可能要素とは異なって、独立して行われます。operatesOnIndetifierがCSWリクエストのcsw:ElementSet要素に指定されていると、operatesOnNameがISOレコードの結果に存在する場合、レスポンスに表示されます。operatesOnIdentifier問合せ可能要素の引数も同様ですが、operatesOn問合せ可能要素は異なります。要するに、表1には"related to"説明が表示されます。csw:Constraintでは、これらの問合せ可能要素をいずれも使用できます。

  • srv:serviceOperation: これも、serviceOperation、operation、DCPおよびlinkage問合せ可能要素による和集合問合せ可能要素です。serviceOperation (operation問合せ可能要素の別名)、operation、DCP、linkageのいずれかをCSWリクエストのcsw:ElementName要素で使用すると、これらすべてがISOレコードの結果セットに存在する場合、レスポンス(要するに"related to"説明)に表示されます。csw:Constraint要素では、これらの問合せ可能要素をいずれも使用できます。

18.5.3 CSWの操作: XMLを使用したリクエストとレスポンスの例(DCMI)

このトピックでは、次の操作について、CSWエンジンへのリクエストの一部と、リクエストに対するレスポンスを示します。

18.5.3.1 GetCapabilities操作(CSW、DCMI)

GetCapabilities操作では、CSWクライアントがCSWエンジン(サーバー)からカタログ・サービス・メタデータを取得できます。GetCapabilitiesリクエストのレスポンスは、サーバーに関するカタログ・サービス・メタデータ・ドキュメントを含むXMLドキュメントです。この操作では、機能が記述され、CSWインスタンスが戻すXMLドキュメントを指定します。

CSWサーバーはserviceSectionsAcceptVersionsおよびAcceptFormatsリクエスト・パラメータを受け入れ、updateSequenceパラメータを実装できます。すべてのCSWサーバーはGetCapabilities操作用にHTTP GET(つまり、GET KVP)プロトコルを実装する必要があります。このサービスでは、POST XMLおよびSOAPプロトコルもサポートされます。

サービス・メタデータ・ドキュメント(CSW GetCapabilitiesレスポンス)には、次のセクションが含まれます。

  • Service Identification: 指定したCSW実装に関するメタデータ。

  • Service Provider: CSWサービスを提供する組織に関するメタデータ。

  • Operations Metadata: 操作リクエストのURLなど、特定のCSW実装によって提供されるCSW操作に関するメタデータ。このセクションには、サポートされる各操作に使用されるレコード・タイプもリストされます。

  • Filter_Capabilities: サーバーが[OGC 04-095]で定義されている、フィルタ述語エンコーディングを実装する場合のサーバーのフィルタ機能に関するメタデータ。

GetCapabilities操作リクエストのSectionsパラメータの値によって、これらのセクションの任意の組合せをリクエストし、レスポンス・サイズを小さくすることができます。Sectionsパラメータを指定しない場合、すべてのセクションが戻されます

例18-1 GetCapabilitiesリクエスト

指定した名前空間URLで、CSWという名前のCSWサーバーの機能を取得するリクエストを次に示します。このリクエストでは、機能のドキュメント(「機能のドキュメント(CSW)」を参照)が戻されます。

<csw:GetCapabilities service="CSW" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:ows="http://www.opengis.net/ows/2.0">
  <ows:AcceptVersions>
    <ows:Version>2.0.2</ows:Version>
    <ows:Version>0.7.2</ows:Version>
  </ows:AcceptVersions>
  <ows:AcceptFormats>
    <ows:OutputFormat>text/xml</ows:OutputFormat>
  </ows:AcceptFormats>
</csw:GetCapabilities>
18.5.3.2 DescribeRecord操作(CSW、DCMI)

DescribeRecord操作では、クライアントがカタログ・サービスによってサポートされる情報モデルの要素を検出できます。この操作では、情報モデルの一部またはすべてが記述されます。Oracle Spatial and Graphカタログ・サービスでは、HTTP GET、POST XMLおよびSOAPプロトコルがサポートされます。

XMLエンコードのDescribeRecordリクエストの場合、名前空間の宣言は、『Namespaces in XML』[https://www.w3.org/TR/1999/REC-xml-names-19990114/]に記載された標準のXML規則(xmlns属性)を使用して指定します。

KVPエンコーディングの場合、名前空間の宣言はNAMESPACEパラメータを使用して指定します。これは、xmlns([prefix=]namespace-url)という形式の名前空間の宣言のカンマ区切りのリストです。

TypeNameパラメータは、カタログ・サービスによって記述されるタイプ名のリストを指定します。タイプ名は、カタログの情報モデルから問合せ可能なエンティティの名前です。Oracle Spatial and Graphカタログ・サービスでは、TypeNameパラメータに使用できるのはcsw:Recordのみです。

outputFormatパラメータは、レスポンス・ドキュメントのMIMEタイプを指定します。デフォルトの出力形式属性は、MIMEタイプapplication/xmlです。サポートされるすべての出力形式が機能のドキュメントで宣言されます。Oracle Spatial and Graphカタログ・サービスでは、デフォルトでapplication/xmlがサポートされます。

schemaLanguageパラメータを使用して、指定したタイプの記述に使用するスキーマ言語を指定します。デフォルト値はXMLSCHEMAで、XML-Schemaスキーマ記述言語を使用することを示します。Oracle Spatial and Graphカタログ・サービスでは、リクエストにこのパラメータに対するXMLSCHEMAがあれば、それがサポートされます。

HTTP GETリクエストの例を次に示します。

http://<host:port>/oraclespatial/csw/<data source name>?service=CSW&request=DescribeRecord&version=2.0.2&outputFormat=application/xml&schemaLanguage=XMLSCHEMA&typeName=csw:Record&namespace=xmlns(csw=http://www.opengis.org/cat/csw)

DescribeRecord操作のレスポンスは、DescribeRecordResponse要素を含むXMLドキュメントで、ゼロ個以上のSchemaComponentサブ要素が含まれ、リクエストしたスキーマ言語での1つ以上のタイプ名の記述がそれぞれに含まれます。Oracle Spatial and Graphカタログ・サービスでは、TypeNameの値はcsw:Recordであるため、DCMIプロファイルのDescribeRecordレスポンスに含まれるSchemaComponentは1つのみです。

例18-2 DescribeRecordリクエスト

指定した名前空間に対して、Recordというタイプ名のレコードを記述するリクエストを次に示します。

<csw:DescribeRecord xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
                    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                    xsd:schemaLanguage="http://www.w3.org/XML/Schema"
                    service="CSW"
                    version="2.0.2">
  <csw:TypeName>csw:Record</csw:TypeName>
</csw:DescribeRecord>

例18-3 DescribeRecordのレスポンス

前述のリクエストに対するレスポンスは、次のとおりです。レスポンスはXMLスキーマ定義(XSD)です。各要素の説明は、レスポンス内の<xsd:documentation>要素に含まれるコメントを参照してください。

<csw:DescribeRecordResponse xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dct="http://purl.org/dc/terms/" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:ogc="http://www.opengis.net/ogc" xmlns:ows="http://www.opengis.net/ows" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd">
  <csw:SchemaComponent schemaLanguage="http://www.w3.org/XML/Schema" targetNamespace="http://www.opengis.net/cat/csw/2.0.2">    <xsd:schema id="csw-record"
       targetNamespace="http://www.opengis.net/cat/csw/2.0.2"
       xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:dc="http://purl.org/dc/elements/1.1/"
       xmlns:dct="http://purl.org/dc/terms/" xmlns:ows="http://www.opengis.net/ows"
       elementFormDefault="qualified" version="2.0.2.2">
       <xsd:annotation>
          <xsd:appinfo>
             <dc:identifier xmlns:dc="http://purl.org/dc/elements/1.1/">http://schemas.opengis.net/csw/2.0.2/record.xsd</dc:identifier>
          </xsd:appinfo>
          <xsd:documentation xml:lang="en">
             This schema defines the basic record types that must be supported
             by all CSW implementations. These correspond to full, summary, and
             brief views based on DCMI metadata terms.

             CSW is an OGC Standard.
             Copyright (c) 2004,2010 Open Geospatial Consortium.
             To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
          </xsd:documentation>
       </xsd:annotation>

       <xsd:include schemaLocation="csw.xsd"/>
       <xsd:import namespace="http://purl.org/dc/terms/" schemaLocation="http://schemas.opengis.net/csw/2.0.2/rec-dcterms.xsd"/>
       <xsd:import namespace="http://purl.org/dc/elements/1.1/" schemaLocation="http://schemas.opengis.net/csw/2.0.2/rec-dcmes.xsd"/>
       <xsd:import namespace="http://www.opengis.net/ows" schemaLocation="http://schemas.opengis.net/ows/1.0.0/owsAll.xsd"/>

       <xsd:element name="AbstractRecord" id="AbstractRecord"
                    type="csw:AbstractRecordType" abstract="true" />
       <xsd:complexType name="AbstractRecordType" id="AbstractRecordType"
                        abstract="true"/>

       <xsd:element name="DCMIRecord" type="csw:DCMIRecordType"
                    substitutionGroup="csw:AbstractRecord"/>
       <xsd:complexType name="DCMIRecordType">
          <xsd:annotation>
             <xsd:documentation xml:lang="en">
                This type encapsulates all of the standard DCMI metadata terms,
                including the Dublin Core refinements; these terms may be mapped
                to the profile-specific information model.
             </xsd:documentation>
          </xsd:annotation>
          <xsd:complexContent>
             <xsd:extension base="csw:AbstractRecordType">
                <xsd:sequence>
                   <xsd:group ref="dct:DCMI-terms"/>
                </xsd:sequence>
             </xsd:extension>
          </xsd:complexContent>
       </xsd:complexType>

       <xsd:element name="BriefRecord" type="csw:BriefRecordType"
                    substitutionGroup="csw:AbstractRecord"/>
       <xsd:complexType name="BriefRecordType" final="#all">
          <xsd:annotation>
             <xsd:documentation xml:lang="en">
                This type defines a brief representation of the common record
                format.  It extends AbstractRecordType to include only the
                 dc:identifier and dc:type properties.
             </xsd:documentation>
          </xsd:annotation>
          <xsd:complexContent>
             <xsd:extension base="csw:AbstractRecordType">
                <xsd:sequence>
                   <xsd:element ref="dc:identifier"
                                minOccurs="1" maxOccurs="unbounded"/>
                   <xsd:element ref="dc:title"
                                minOccurs="1" maxOccurs="unbounded"/>
                   <xsd:element ref="dc:type"
                                minOccurs="0"/>
                   <xsd:element ref="ows:BoundingBox"
                                minOccurs="0" maxOccurs="unbounded"/>
                </xsd:sequence>
             </xsd:extension>
          </xsd:complexContent>
       </xsd:complexType>

       <xsd:element name="SummaryRecord" type="csw:SummaryRecordType"
                    substitutionGroup="csw:AbstractRecord"/>
       <xsd:complexType name="SummaryRecordType" final="#all">
          <xsd:annotation>
             <xsd:documentation xml:lang="en">
                This type defines a summary representation of the common record
                format.  It extends AbstractRecordType to include the core
                properties.
             </xsd:documentation>
          </xsd:annotation>
          <xsd:complexContent>
             <xsd:extension base="csw:AbstractRecordType">
                <xsd:sequence>
                   <xsd:element ref="dc:identifier"
                                minOccurs="1" maxOccurs="unbounded"/>
                   <xsd:element ref="dc:title"
                                minOccurs="1" maxOccurs="unbounded"/>
                   <xsd:element ref="dc:type"
                                minOccurs="0"/>
                   <xsd:element ref="dc:subject"
                                minOccurs="0" maxOccurs="unbounded"/>
                   <xsd:element ref="dc:format"
                                minOccurs="0" maxOccurs="unbounded"/>
                   <xsd:element ref="dc:relation"
                                minOccurs="0" maxOccurs="unbounded"/>
                   <xsd:element ref="dct:modified"
                                minOccurs="0" maxOccurs="unbounded"/>
                   <xsd:element ref="dct:abstract"
                                minOccurs="0" maxOccurs="unbounded"/>
                   <xsd:element ref="dct:spatial"
                                minOccurs="0" maxOccurs="unbounded"/>
                   <xsd:element ref="ows:BoundingBox"
                                minOccurs="0" maxOccurs="unbounded"/>
                </xsd:sequence>
             </xsd:extension>
          </xsd:complexContent>
       </xsd:complexType>
       <xsd:element name="Record" type="csw:RecordType"
                    substitutionGroup="csw:AbstractRecord"/>
       <xsd:complexType name="RecordType" final="#all">
          <xsd:annotation>
             <xsd:documentation xml:lang="en">
                This type extends DCMIRecordType to add ows:BoundingBox;
                it may be used to specify a spatial envelope for the
                catalogued resource.
             </xsd:documentation>
          </xsd:annotation>
          <xsd:complexContent>
             <xsd:extension base="csw:DCMIRecordType">
                <xsd:sequence>
                   <xsd:element name="AnyText" type="csw:EmptyType"
                                minOccurs="0" maxOccurs="unbounded"/>
                   <xsd:element ref="ows:BoundingBox"
                                minOccurs="0" maxOccurs="unbounded"/>
                </xsd:sequence>
             </xsd:extension>
          </xsd:complexContent>
       </xsd:complexType>
       <xsd:complexType name="EmptyType" />
    </xsd:schema>
</csw:SchemaComponent>
</csw:DescribeRecordResponse>
18.5.3.3 GetRecords操作(CSW、DCMI)

CSWでのリソース検出の主なツールは、検索提示の2つの操作です。HTTPプロトコル・バインディングでは、これらはGetRecords操作という形で組み合され、検索と提示を実行します。

GetRecords操作の"検索"部分はQuery要素を使用してエンコードされます。この要素には、typeNameパラメータおよびConstraintパラメータが含まれます。

  • typeNameパラメータを使用して、カタログ・サービスのどのエンティティ(レコード・タイプ)に問合せを行うかを指定します。

  • Constraintパラメータを使用して、どの問合せ制約を適用してリクエスト・セットを識別するかを指定します。

GetRecords操作の"提示"部分は、outputSchemaパラメータおよびElementName/ElementSetNameパラメータを使用してエンコードされます。

  • outputSchemaパラメータは、GetRecords操作へのレスポンスの生成に使用されるXSDスキーマ(つまり、http://www.opengis.net/cat/csw/2.0.2)を示します。

  • ElementNameまたはElementSetNameパラメータを使用して、GetRecordsレスポンスの各レコードに含めるoutputSchemaのプロパティを指定します。

(次の記述では、namespaceoutputFormatなどのDescribeRecordにも使用された一部のパラメータを繰り返していません。)

resultTypeパラメータは、hitsresultsまたはvalidateという値をとることができます。この値によって、カタログ・サービスが結果セットのサマリーのみを戻すか(hits)、結果セットの1つ以上のレコードを含めるか(results)、リクエスト・メッセージを検証するか(validate)が決まります。

startPositionパラメータを使用して、カタログが出力の生成を開始するレコードの位置を示します。デフォルト値は1で、結果セットの最初のレコードです。

maxRecordsパラメータを使用して、問合せの結果セットから戻されるレコードの最大数を定義します。指定されない場合、10レコードが戻されます。値がゼロに設定された場合、resultTypehitsに設定した場合と同じ動作になります。

typeNamesパラメータは、問合せの述語で制約される可能性のあるカタログの情報モデル内の1つ以上の問合せ可能なエンティティの名前のリストです。(csw:RecordはDCMIプロファイルを指定します。)

ElementNameパラメータを使用して、問合せがGetRecords操作のレスポンスで提示する、outputSchemaパラメータを使用して指定する出力スキーマの1つ以上のメタデータ・レコード要素を指定します。

ElementSetNameパラメータはbrief、summaryまたはfullで、サービスがクライアントに提示する名前付きセットを示します。

ElementNameおよびElementSetNameは、相互に排他的なパラメータです。1つの問合せには1つのElementSetNameパラメータまたは1つ以上のElementSetNameパラメータを指定します。

Oracle Spatial and Graph CSWサービスの場合、ConstraintLanguageパラメータはFilterである必要があります。CQLはサポートされていません。

constraintパラメータは、特定のレコードの取得に使用するフィルタ機能を指定します。次のフィルタ機能がOracle Spatial and Graph CSWサービスでサポートされます。

  • 論理演算子: And、Or、Not

  • 比較演算子: PropertyIsEqualTo、PropertyIsNotEqualTo、PropertyIsLessThan、PropertyIsGreaterThan、PropertyIsLessThanOrEqualTo、PropertyIsGreaterThanOrEqualTo、PropertyIsLike、PropertyIsNull、csw:AnyText

  • 空間演算子: BBOX

  • 単純算術: add、sub、div、mul、function

GetRecordsResponse要素は、GetRecordsリクエストに対するレスポンスのコンテナです。

SearchStatus要素は、レスポンスのステータスを示します。検索ステータスは、結果セットが作成された日時を示すタイムスタンプ属性で構成されます。

SearchResults要素には、SearchResults要素が含まれます。この要素はGetRecords操作で戻されるレコードのセットです。SearchResults要素には、ElementSet(brief/summary/full)numberOfRecordaMatchednumberOfRecordsReturnednextRecordといった属性が使用されます。

Oracle Spatial and Graphカタログ・サービスでは、GetRecords操作にはHTTP GET、POST XMLおよびSOAPプロトコルがサポートされます。

例18-4 PropertyIsEqualToおよびPropertyIsLikeを使用したGetRecordsリクエスト

PropertyIsEqualToおよびPropertyIsLikeを指定したGetRecordsリクエストを次に示します。タイプがURL http://purl.org/dc/dcmitype/Imageと等しいか、形式が"application/"と"xml"トークンの間に任意の文字を含む(これらのトークンも含む)文字列値であるレコードが結果セットとして検出されます。(escapeCharsingleCharおよびwildcardの文字は自由に指定できます。)

<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
                xmlns:dc="http://purl.org/dc/elements/1.1/"
                xmlns:dct="http://purl.org/dc/terms/"
                xmlns:gml="http://www.opengis.net/gml"
                xmlns:ogc="http://www.opengis.net/ogc"
                xmlns:ows="http://www.opengis.net/ows"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                resultType="results"
                service="CSW"
                version="2.0.2">
   <csw:Query typeNames="csw:Record">
      <csw:ElementSetName>summary</csw:ElementSetName>
      <csw:Constraint version="1.1.0">
         <ogc:Filter>
            <ogc:Or>
               <ogc:PropertyIsLike escapeChar="\" singleChar="?" wildCard="*">
                  <ogc:PropertyName>dc:format</ogc:PropertyName>
                  <ogc:Literal>application/*xml</ogc:Literal>
               </ogc:PropertyIsLike>
               <ogc:PropertyIsEqualTo>
                  <ogc:PropertyName>dc:type</ogc:PropertyName>
                  <ogc:Literal>http://purl.org/dc/dcmitype/Image</ogc:Literal>
               </ogc:PropertyIsEqualTo>
            </ogc:Or>
         </ogc:Filter>
      </csw:Constraint>
   </csw:Query>
</csw:GetRecords>

GetRecordsリクエストの場合、ElementSetNamesummaryfullまたはbriefのいずれかです。

CSW 2.0.2仕様では、ElementSetName (1つのみ)またはElementName (1つ以上)をGetRecordsリクエストに指定できます。

Spatial and Graphカタログ・サービスでは、GetRecordsリクエストの同期処理のみサポートされます。

例18-5 PropertyIsEqualToおよびPropertyIsLikeを使用したGetRecordsのレスポンス

前述のリクエストに対するレスポンスは、次のとおりです。

<csw:GetRecordsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns9="http://www.opengis.net/ows" xmlns:ns8="http://purl.org/dc/terms/" xmlns:ns7="http://purl.org/dc/elements/1.1/" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:swe="http://www.opengis.net/swe/2.0" version="2.0.2" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 ../../cswAll.xsd">
  <csw:SearchStatus timestamp="2016-06-09T02:16:36Z"></csw:SearchStatus>
  <csw:SearchResults elementSet="summary" recordSchema="http://www.opengis.net/cat/csw/2.0.2" numberOfRecordsMatched="4" numberOfRecordsReturned="4" nextRecord="0">
    <csw:SummaryRecord>
      <ns7:identifier>urn:uuid:19887a8a-f6b0-4a63-ae56-7fba0e17801f</ns7:identifier>
      <ns7:title>Lorem ipsum</ns7:title>
      <ns7:type>http://purl.org/dc/dcmitype/Image</ns7:type>
      <ns7:subject>Tourism--Greece</ns7:subject>
      <ns7:format>image/svg+xml</ns7:format>
      <ns8:abstract>Quisque lacus diam, placerat mollis, pharetra in, commodo sed, augue. Duis iaculis arcu vel arcu.</ns8:abstract>
      <ns9:BoundingBox></ns9:BoundingBox>
    </csw:SummaryRecord>
    <csw:SummaryRecord>
      <ns7:identifier>urn:uuid:66ae76b7-54ba-489b-a582-0f0633d96493</ns7:identifier>
      <ns7:title>Maecenas enim</ns7:title>
      <ns7:type>http://purl.org/dc/dcmitype/Text</ns7:type>
      <ns7:subject>Marine sediments</ns7:subject>
      <ns7:format>application/xhtml+xml</ns7:format>
      <ns8:abstract>Pellentesque tempus magna non sapien fringilla blandit.</ns8:abstract>
      <ns9:BoundingBox></ns9:BoundingBox>
    </csw:SummaryRecord>
    <csw:SummaryRecord>
      <ns7:identifier>urn:uuid:829babb0-b2f1-49e1-8cd5-7b489fe71a1e</ns7:identifier>
      <ns7:title>Vestibulum massa purus</ns7:title>
      <ns7:type>http://purl.org/dc/dcmitype/Image</ns7:type>
      <ns7:format>image/jp2</ns7:format>
      <ns7:relation>urn:uuid:9a669547-b69b-469f-a11f-2d875366bbdc</ns7:relation>
      <ns9:BoundingBox></ns9:BoundingBox>
    </csw:SummaryRecord>
    <csw:SummaryRecord>
      <ns7:identifier>urn:uuid:a06af396-3105-442d-8b40-22b57a90d2f2</ns7:identifier>
      <ns7:title>Lorem ipsum dolor sit amet</ns7:title>
      <ns7:type>http://purl.org/dc/dcmitype/Image</ns7:type>
      <ns7:format>image/jpeg</ns7:format>
      <ns9:BoundingBox></ns9:BoundingBox>
    </csw:SummaryRecord>
  </csw:SearchResults>
</csw:GetRecordsResponse>

例18-6 PropertyIsLikeを使用したGetRecordsリクエスト

PropertyIsLikeを使用したGetRecordsのリクエストを次に示します。ここでは、クライアントは、プロパティ・タイトルが"Lorem ipsum*"のようなレコードをフェッチします。(escapeCharsingleCharおよびwildcardの文字は自由に指定できます。)

<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
                xmlns:dc="http://purl.org/dc/elements/1.1/"
                xmlns:dct="http://purl.org/dc/terms/"
                xmlns:gml="http://www.opengis.net/gml"
                xmlns:ogc="http://www.opengis.net/ogc"
                xmlns:ows="http://www.opengis.net/ows"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                xmlns:xlink="http://www.w3.org/1999/xlink"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                maxRecords="20"
                resultType="results"
                service="CSW"
                version="2.0.2">
   <csw:Query typeNames="csw:Record">
      <csw:ElementSetName>summary</csw:ElementSetName>
      <csw:Constraint version="1.1.0">
         <ogc:Filter>
            <ogc:PropertyIsLike escapeChar="\" singleChar="?" wildCard="*">
               <ogc:PropertyName>dc:title</ogc:PropertyName>
               <ogc:Literal>Lorem ipsum*</ogc:Literal>
            </ogc:PropertyIsLike>
         </ogc:Filter>
      </csw:Constraint>
   </csw:Query>
</csw:GetRecords>

例18-7 PropertyIsLikeを使用したGetRecordsのレスポンス

前述のリクエストに対するレスポンスは、次のとおりです。

<csw:GetRecordsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns9="http://www.opengis.net/ows" xmlns:ns8="http://purl.org/dc/terms/" xmlns:ns7="http://purl.org/dc/elements/1.1/" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:swe="http://www.opengis.net/swe/2.0" version="2.0.2" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 ../../cswAll.xsd">
  <csw:SearchStatus timestamp="2016-06-10T01:38:22Z"></csw:SearchStatus>
  <csw:SearchResults elementSet="summary" recordSchema="http://www.opengis.net/cat/csw/2.0.2" numberOfRecordsMatched="2" numberOfRecordsReturned="2" nextRecord="0">
    <csw:SummaryRecord>
      <ns7:identifier>urn:uuid:19887a8a-f6b0-4a63-ae56-7fba0e17801f</ns7:identifier>
      <ns7:title>Lorem ipsum</ns7:title>
      <ns7:type>http://purl.org/dc/dcmitype/Image</ns7:type>
      <ns7:subject>Tourism--Greece</ns7:subject>
      <ns7:format>image/svg+xml</ns7:format>
      <ns8:abstract>Quisque lacus diam, placerat mollis, pharetra in, commodo sed, augue. Duis iaculis arcu vel arcu.</ns8:abstract>
      <ns9:BoundingBox></ns9:BoundingBox>
    </csw:SummaryRecord>
    <csw:SummaryRecord>
      <ns7:identifier>urn:uuid:a06af396-3105-442d-8b40-22b57a90d2f2</ns7:identifier>
      <ns7:title>Lorem ipsum dolor sit amet</ns7:title>
      <ns7:type>http://purl.org/dc/dcmitype/Image</ns7:type>
      <ns7:format>image/jpeg</ns7:format>
      <ns9:BoundingBox></ns9:BoundingBox>
    </csw:SummaryRecord>
  </csw:SearchResults>
</csw:GetRecordsResponse>

例18-8 PropertyIsGreaterThanを使用したGetRecordsリクエスト

PropertyIsGreaterThanを使用したGetRecordsのリクエストを次に示します。ここでは、クライアントは、日付が2004-01-01より後のレコードをフェッチします。

<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
                xmlns:dc="http://purl.org/dc/elements/1.1/"
                xmlns:dct="http://purl.org/dc/terms/"
                xmlns:gml="http://www.opengis.net/gml"
                xmlns:ogc="http://www.opengis.net/ogc"
                xmlns:ows="http://www.opengis.net/ows"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                xmlns:xlink="http://www.w3.org/1999/xlink"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                resultType="results"
                service="CSW"
                version="2.0.2">
   <csw:Query typeNames="csw:Record">
      <csw:ElementName>dc:identifier</csw:ElementName>
      <csw:ElementName>dc:type</csw:ElementName>
      <csw:ElementName>dc:date</csw:ElementName>
      <csw:Constraint version="1.1.0">
         <ogc:Filter>
            <ogc:PropertyIsGreaterThan>
               <ogc:PropertyName>dc:date</ogc:PropertyName>
               <ogc:Literal>2004-01-01Z</ogc:Literal>
            </ogc:PropertyIsGreaterThan>
         </ogc:Filter>
      </csw:Constraint>
   </csw:Query>
</csw:GetRecords>

例18-9 PropertyIsGreaterThanを使用したGetRecordsのレスポンス

前述のリクエストに対するレスポンスは、次のとおりです。

<csw:GetRecordsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns9="http://www.opengis.net/ows" xmlns:ns8="http://purl.org/dc/terms/" xmlns:ns7="http://purl.org/dc/elements/1.1/" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:swe="http://www.opengis.net/swe/2.0" version="2.0.2" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 ../../cswAll.xsd">
  <csw:SearchStatus timestamp="2015-06-29T05:50:16Z"></csw:SearchStatus>
  <csw:SearchResults elementSet="" recordSchema="http://www.opengis.net/cat/csw/2.0.2" numberOfRecordsMatched="3" numberOfRecordsReturned="3" nextRecord="0">
    <csw:Record>
      <ns7:identifier>urn:uuid:784e2afd-a9fd-44a6-9a92-a3848371c8ec</ns7:identifier>
      <ns7:type>http://purl.org/dc/dcmitype/Text</ns7:type>
      <ns7:date>2006-05-12Z</ns7:date>
    </csw:Record>
    <csw:Record>
      <ns7:identifier>urn:uuid:94bc9c83-97f6-4b40-9eb8-a8e8787a5c63</ns7:identifier>
      <ns7:type>http://purl.org/dc/dcmitype/Dataset</ns7:type>
      <ns7:date>2006-03-26Z</ns7:date>
    </csw:Record>
    <csw:Record>
      <ns7:identifier>urn:uuid:9a669547-b69b-469f-a11f-2d875366bbdc</ns7:identifier>
      <ns7:type>http://purl.org/dc/dcmitype/Dataset</ns7:type>
      <ns7:date>2005-10-24Z</ns7:date>
    </csw:Record>
  </csw:SearchResults>
</csw:GetRecordsResponse>

例18-10 BoundingBox (BBOX)を使用したGetRecordsリクエスト

BoundingBox (BBOX)を使用したGetRecordsのリクエストを次に示します。ここでは、クライアントは、ジオメトリが(40,-9;50, -5)という境界ボックスに該当せず、タイプが大/小文字を区別しない文字列URL値HTTP://purl.org/dc/dcmitype/datasetに等しいレコードをフェッチします。つまり、タイプはhttp://purl.org/dc/dcmitype/datasetであるか、これで始まるということです。このリクエストには、空間索引およびXQFT索引の両方が活用されます。

<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
                xmlns:dc="http://purl.org/dc/elements/1.1/"
                xmlns:dct="http://purl.org/dc/terms/"
                xmlns:gml="http://www.opengis.net/gml"
                xmlns:ogc="http://www.opengis.net/ogc"
                xmlns:ows="http://www.opengis.net/ows"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                xmlns:xlink="http://www.w3.org/1999/xlink"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                resultType="results"
                service="CSW"
                version="2.0.2">
   <csw:Query typeNames="csw:Record">
      <csw:ElementName>dc:identifier</csw:ElementName>
      <csw:ElementName>dc:type</csw:ElementName>
      <csw:ElementName>ows:BoundingBox</csw:ElementName>
      <csw:Constraint version="1.1.0">
         <ogc:Filter>
            <ogc:And>
               <ogc:Not>
                  <ogc:BBOX>
                     <ogc:PropertyName>ows:BoundingBox</ogc:PropertyName>
                     <gml:Envelope srsName="urn:x-ogc:def:crs:EPSG:6.11:4326">
                        <gml:lowerCorner>40.0 -9.0</gml:lowerCorner>
                        <gml:upperCorner>50.0 -5.0</gml:upperCorner>
                     </gml:Envelope>
                  </ogc:BBOX>
               </ogc:Not>
               <ogc:PropertyIsEqualTo matchCase="false">
                  <ogc:PropertyName>dc:type</ogc:PropertyName>
                  <ogc:Literal>HTTP://purl.org/dc/dcmitype/dataset</ogc:Literal>
               </ogc:PropertyIsEqualTo>
            </ogc:And>
         </ogc:Filter>
      </csw:Constraint>
   </csw:Query>
</csw:GetRecords>

例18-11 BoundingBox (BBOX)を使用したGetRecordsのレスポンス

前述のリクエストに対するレスポンスは、次のとおりです。

<csw:GetRecordsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns9="http://www.opengis.net/ows" xmlns:ns8="http://purl.org/dc/terms/" xmlns:ns7="http://purl.org/dc/elements/1.1/" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:swe="http://www.opengis.net/swe/2.0" version="2.0.2" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 ../../cswAll.xsd">
  <csw:SearchStatus timestamp="2015-06-29T05:50:16Z"></csw:SearchStatus>
  <csw:SearchResults elementSet="" recordSchema="http://www.opengis.net/cat/csw/2.0.2" numberOfRecordsMatched="2" numberOfRecordsReturned="2" nextRecord="0">
    <csw:Record>
      <ns7:identifier>urn:uuid:88247b56-4cbc-4df9-9860-db3f8042e357</ns7:identifier>
      <ns7:type>http://purl.org/dc/dcmitype/Dataset</ns7:type>
      <ns9:BoundingBox></ns9:BoundingBox>
    </csw:Record>
    <csw:Record>
      <ns7:identifier>urn:uuid:94bc9c83-97f6-4b40-9eb8-a8e8787a5c63</ns7:identifier>
      <ns7:type>http://purl.org/dc/dcmitype/Dataset</ns7:type>
      <ns9:BoundingBox crs="urn:x-ogc:def:crs:EPSG:6.11:4326" dimensions="2">
        <ns9:LowerCorner>47.595 -4.097</ns9:LowerCorner>
        <ns9:UpperCorner>51.217 0.889</ns9:UpperCorner>
      </ns9:BoundingBox>
    </csw:Record>
  </csw:SearchResults>
</csw:GetRecordsResponse>
18.5.3.4 GetRecordById操作(CSW、DCMI)

GetRecordById操作はGetRecords操作のサブセットで、CSWサービスでレコードを取得およびリンクするための簡単で便利な形式として含まれています。GetRecordByIdリクエストは、識別子を使用してカタログ・レコードを取得します。

GetRecordById操作は、「GetRecords操作(CSW、DCMI)」で説明する"提示"操作の実装です。パラメータは、ElementSetNameoutputFormatoutputSchemaおよびIdです。

GetRecordByIdのレスポンスは、リクエストのId値と一致したレコードのリストです。

Oracle Spatial and Graph CSWでは、このリクエストにはHTTP GET、POST XMLおよびSOAPプロトコルがサポートされます。

例18-12 GetRecordByIdリクエスト

レコードID値がurn:uuid:a06af396-3105-442d-8b40-22b57a90d2f2urn:uuid:19887a8a-f6b0-4a63-ae56-7fba0e17801furn:uuid:ab42a8c4-95e8-4630-bf79-33e59241605aのレコードを取得するリクエストを次に示します。

<csw:GetRecordById xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
                   xmlns:dc="http://purl.org/dc/elements/1.1/"
                   xmlns:dct="http://purl.org/dc/terms/"
                   xmlns:gml="http://www.opengis.net/gml"
                   xmlns:ogc="http://www.opengis.net/ogc"
                   xmlns:ows="http://www.opengis.net/ows"
                   xmlns:xi="http://www.w3.org/2001/XInclude"
                   xmlns:xlink="http://www.w3.org/1999/xlink"
                   xmlns:xs="http://www.w3.org/2001/XMLSchema"
                   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                   outputFormat="application/xml"
                   service="CSW"
                   version="2.0.2">
  <csw:Id>urn:uuid:a06af396-3105-442d-8b40-22b57a90d2f2</csw:Id>
  <csw:Id>urn:uuid:19887a8a-f6b0-4a63-ae56-7fba0e17801f</csw:Id>
  <csw:Id>urn:uuid:ab42a8c4-95e8-4630-bf79-33e59241605a</csw:Id>
  <csw:ElementSetName>brief</csw:ElementSetName>
</csw:GetRecordById>

例18-13 GetRecordByIdのレスポンス

前述のリクエストに対するレスポンスは、次のとおりです。

<csw:GetRecordByIdResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns9="http://www.opengis.net/ows" xmlns:ns8="http://purl.org/dc/terms/" xmlns:ns7="http://purl.org/dc/elements/1.1/" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:swe="http://www.opengis.net/swe/2.0" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 ../../cswAll.xsd">
  <BriefRecord>
    <ns7:identifier>urn:uuid:19887a8a-f6b0-4a63-ae56-7fba0e17801f</ns7:identifier>
    <ns7:type>http://purl.org/dc/dcmitype/Image</ns7:type>
    <ns7:title>Lorem ipsum</ns7:title>
    <ns9:BoundingBox></ns9:BoundingBox>
  </BriefRecord>
  <BriefRecord>
    <ns7:identifier>urn:uuid:a06af396-3105-442d-8b40-22b57a90d2f2</ns7:identifier>
    <ns7:type>http://purl.org/dc/dcmitype/Image</ns7:type>
    <ns7:title>Lorem ipsum dolor sit amet</ns7:title>
    <ns9:BoundingBox></ns9:BoundingBox>
  </BriefRecord>
  <BriefRecord>
    <ns7:identifier>urn:uuid:ab42a8c4-95e8-4630-bf79-33e59241605a</ns7:identifier>
    <ns7:type>http://purl.org/dc/dcmitype/Service</ns7:type>
    <ns9:BoundingBox></ns9:BoundingBox>
  </BriefRecord>
</csw:GetRecordByIdResponse>

18.6 CSWの主要な操作(ISOプロファイル)

このトピックでは、CSWデータのロードおよび問合せについて説明し、各種操作のリクエストおよびレスポンスの例を示します。これは、ISOレコード・タイプを使用するCSWデータの使用に当てはまります。

CSWデータでISOプロファイルが使用されている場合は、各レコードのrecordType属性の値は2となります。

SDO_CSW.INITIALIZE_CSWプロシージャをコールする際、CSWデータのレコード・タイプをcsw_xsd_idパラメータ値(DCMIの場合は1、ISOの場合は2)に指定します。

ビューUSER_SDO_CSW_SERVICE_INFOには、サポートされているCSW recordTypeのCSWメタデータが格納されます(「CSWのデータベース・スキーマとオブジェクト」を参照)。

18.6.1 CSW 2.0.2データのロード(ISO)

CSW ISOプロファイル・スキーマの初期化時にCSW ISOプロファイル表を作成したら、この表へのCSW 2.0.2データ(ISO 19139レコード)のロードを開始できます。

Oracle Spatial and Graphには、この目的で$ORACLE_HOME/md/jlib/sdocswloader.jarというクライアント側ローダーが用意されています(Spatial and Graphのデフォルト・インストール・ディレクトリ$ORACLE_HOME/mdを使用するものとします)。

sdocswloader.jarパッケージを使用すると、CSW ISOプロファイルXMLレコードを含む大規模なファイルを取り込み、CSW ISOプロファイル表にロードできます。たとえば、多数のISOレコードを含むcsw_records1.txtcsw_records2.txtおよびcsw_records3.txtの3つのXMLファイルがあるとします。次のステップに従ってCSW ISOプロファイル表にロードします。

  1. sdo_csw_demo.xmlという名前(または任意の名前)の次の例のようなXML構成ファイルを作成します。

    <?xml version='1.0' encoding='windows-1252'?>
    <Connection>
       <Driver>Thin</Driver>
       <Hostname>localhost</Hostname>
       <Port>52504</Port>
       <ServiceName>SERVICENAME </ServiceName>
       <ServerMode>DEDICATED</ServerMode>
       <Schema>MDMETT</Schema>
       <Password>MDMETT</Password>
       <!-- Requires access to V$MYSTAT and V$SESS_TIME_MODEL -->
       <logServerStats>true</logServerStats>
       <clientSideEncoding>true</clientSideEncoding>
       <!-- SAX : for Splitting Large XML Files into smaller Files -->
       <!-- FOLDER : for walking a client side directory tree loading Files -->
       <mode>SAX</mode>
       <Pool>false</Pool>
       <Namespaces 
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
            xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:dct="http://purl.org/dc/terms/"
            xmlns:gml="http://www.opengis.net/gml"
            xmlns:ogc="http://www.opengis.net/ogc"
            xmlns:ows="http://www.opengis.net/ows"
            xmlns:xi="http://www.w3.org/2001/XInclude"
            xmlns:xlink="http://www.w3.org/1999/xlink"
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:xsd=“http://www.w3.org/2001/XMLSchema"
            xmlns:gmi="http://www.isotc211.org/2005/gmi" 
            xmlns:gco="http://www.isotc211.org/2005/gco" 
            xmlns:gmx="http://www.isotc211.org/2005/gmx"
            xmlns:apiso="http://www.opengis.net/cat/csw/apiso/1.0"
            xmlns:gmd="http://www.isotc211.org/2005/gmd"
            xmlns:srv="http://www.isotc211.org/2005/srv" 
       />
       <!-- List of Files to be processed -->
       <FileList>
       <!-- replace the following with full file path names for the records -->
          <File>csw_records1.txt</File>
          <File>csw_records2.txt</File>
          <File>csw_records3.txt</File>
       </FileList>
       <Tables>
          <Table name="SDO_CSW_DEMO_TABLE" path="/root/gmd:MD_Metadata">
             <Column name="XML_COLUMN" path="/root/gmd:MD_Metadata" type="xml"/>
             <Column name="METADATA_ID" path="/root/gmd:MD_Metadata/gmd:fileIdentifier/gco:CharacterString" type="string"/>
          </Table>
       </Tables>
       <!-- Each Writer process will commit its workload after this number of inserts -->
       <CommitCharge>100</CommitCharge>
       <!-- Number of Concurrent Writer Threads -->
       <ThreadCount>10</ThreadCount>
       <!—replace the following with full file path name for the logger -->
       <LogFileName>csw_records.log</LogFileName>
       <ErrorTable>CSW_ERROR_TABLE_NAME</ErrorTable>
       <schemaInstancePrefix>xsi</schemaInstancePrefix>
       <schemaLocation/>
       <noNamespaceSchemaLocation/>
    </Connection>
    

    この構成ファイルでローダーはISO19139名前空間でISO19139レコードを処理できます。

    このファイルのusernameパラメータは、CSW ISOプロファイル・スキーマ名を参照します。

    Table名は移入先のCSW ISOプロファイル表です。1つ目のColumn名はOracle XMLTypeオブジェクトとしてレコードを格納するCSW ISOプロファイル表内の列で、2つ目のColumn名はレコードID値を格納するCSW ISOプロファイル表内の列です。

    ノート:

    表およびログ・ディレクトリが存在しない場合、(次のステップで)XMLLoaderを実行する前に次のようにします。

    1. エラーのログを含めるCSW_ERROR_TABLE_NAME表をCSW ISOプロファイル・スキーマに作成します。たとえば、CREATE TABLE CSW_ERROR_TABLE of XMLTYPE;です

    2. logという名前のディレクトリを作成します。ここにcsw_records.logファイルが作成されます。

  2. 次の例に示すようなrunXMLLoader.shファイル(Linuxの場合)またはrunXMLLoader.batファイル(Windowsの場合)を作成します。

    • Linux: runXMLLoader.sh

      PATH=$ORACLE_HOME/jdk/bin:$PATH
      java -Xmx2048M -classpath "$ORACLE_HOME/md/jlib/sdocswloader.jar:$ORACLE_HOME/lib/xmlparserv2.jar:$ORACLE_HOME/jdbc/lib/ojdbc8.jar:$ORACLE_HOME/rdbms/jlib/xdb8.jar" -Doracle.spatial.xmlloader.ConnectionParameters= /mydir/sdo_csw_demo.xml oracle.spatial.xmlloader.saxLoader.XMLLoader
    • Windows:runXMLLoader.bat

      set ORACLE_HOME=e:\app\oracle\product\12.2.0\dbhome_1
      set PATH=%ORACLE_HOME%\jdk\bin;%PATH%
      java -cp %CD%\XMLLoader.jar;%ORACLE_HOME%\lib\xmlparserv2.jar;%ORACLE_HOME%\jdbc\lib\ojdbc8.jar;%ORACLE_HOME%\jdbc\lib\ojdbc8dms.jar;%ORACLE_HOME%\rdbms\jlib\xdb8.jar -Doracle.spatial.xmlloader.ConnectionParameters=%1 oracle.spatial.xmlloader.saxLoader.XMLLoader

    これらのファイルではsdo_csw_demo.xmlファイルを使用し、JDKは1.8であるものとします。Java環境が異なる場合、ファイルを修正する必要があります。システム環境に合せて構成ファイルおよび関連スクリプト・ファイルに他の変更を加える必要がある場合があります。

この例のシナリオでは、runXMLLoader.shまたはrunXMLLoader.batを実行すると、CSW表に3つのCSW 2.0.2 ISOプロファイル・データ・ファイルのレコードが移入されます。

18.6.2 CSW 2.0.2データの問合せ(ISO)

CSW ISOプロファイル・データの問合せに対して、このトピックで説明する問合せ可能要素を使用したGetCapabilities、DescribeRercordおよびGetRecords CSWリクエストがサポートされています。

次のサンプル問合せはPOSTリクエストであり、1つ目はcsw:ElementName要素を使用し、2つ目はcsw:ElementSetName要素を使用しています。それぞれのケースで、ogc:PropertyName要素は、csw:Constraint要素内のogc:Filter要素内に問合せ対象のプロパティを指定するのに使用されます。

サンプル・リクエスト1: 問合せでのElementName要素の指定

<csw:GetRecords xmlns:apiso="http://www.opengis.net/cat/csw/apiso/1.0"
                xmlns:gmd="http://www.isotc211.org/2005/gmd"
                xmlns:srv="http://www.isotc211.org/2005/srv"
                xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
                xmlns:dc="http://purl.org/dc/elements/1.1/"
                xmlns:dct="http://purl.org/dc/terms/"
                xmlns:gml="http://www.opengis.net/gml"
                xmlns:ogc="http://www.opengis.net/ogc"
                xmlns:ows="http://www.opengis.net/ows"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                xmlns:xlink="http://www.w3.org/1999/xlink"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                resultType="results"
                service="CSW"
                version="2.0.2">
   <csw:Query typeNames="gmd:MD_Metadata">
      <csw:ElementName>gmd:identifier</csw:ElementName>
      <csw:ElementName>gmd:type</csw:ElementName>
      <csw:ElementName>gmd:date</csw:ElementName>
      <csw:ElementName>gmd:abstract</csw:ElementName>
      <csw:Constraint version="1.1.0">
         <ogc:Filter>
            <ogc:PropertyIsLike escapeChar="\" singleChar="?" wildCard="*">
               <ogc:PropertyName>gmd:abstract</ogc:PropertyName>
               <ogc:Literal>*Oracle CSW*</ogc:Literal>
            </ogc:PropertyIsLike>
         </ogc:Filter>
      </csw:Constraint>
   </csw:Query>
</csw:GetRecords>

サンプル・リクエスト2: 問合せでのElementSetName要素の指定

<csw:GetRecords xmlns:apiso="http://www.opengis.net/cat/csw/apiso/1.0"
                xmlns:gmd="http://www.isotc211.org/2005/gmd"
                xmlns:srv="http://www.isotc211.org/2005/srv"
               xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
                xmlns:dc="http://purl.org/dc/elements/1.1/"
                xmlns:dct="http://purl.org/dc/terms/"
                xmlns:gml="http://www.opengis.net/gml"
                xmlns:ogc="http://www.opengis.net/ogc"
                xmlns:ows="http://www.opengis.net/ows"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                xmlns:xlink="http://www.w3.org/1999/xlink"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                resultType="results"
                outputFormat="application/xml"
                outputSchema="http://www.isotc211.org/2005/gmd"
                service="CSW"
                version="2.0.2">
   <csw:Query typeNames="gmd:MD_Metadata">
      <csw:ElementSetName>brief</csw:ElementSetName>
      <csw:Constraint version="1.1.0">
         <ogc:Filter>
            <ogc:PropertyIsEqualTo>
               <ogc:PropertyName>gmd:title</ogc:PropertyName>
               <ogc:Literal>Oracle CSW 2.0.2 Service Record</ogc:Literal>
            </ogc:PropertyIsEqualTo>
         </ogc:Filter>
      </csw:Constraint>
   </csw:Query>
</csw:GetRecords>

前述のサンプル・リクエストでは、問合せ可能要素を使用した単純な問合せを示しています。csw:Constraint要素は、ogc:Andコネクタなどと使用してより複雑な構造にすることができます。詳細は、OGC CSW 2.0.2仕様のOGC 07-045を参照してください。

csw:Constraint要素でcws:ElementName要素またはcsw:ElementSetName要素とともに使用できる問合せ可能要素は、次のモードに分類できます。

  • Brief (OGC CSW 2.0.2仕様で指定されている簡易モード)

  • Summary (OGC CSW 2.0.2仕様で指定されている要約モード)

  • Comprehensive (Summaryと他の要素が含まれるOracle固有のモード。ComprehensiveモードはISOプロファイルにのみ適用され、DCMIプロファイルには適用されません。)

  • Full(常に完全な元のISOレコードを戻します)

csw:ElementySetName要素は、モード(briefsummarycomprehensiveまたはfull)を指定します。csw:ElementName要素は、モードを指定しませんが、問合せ可能要素の名前を指定します。サンプル・リクエスト2では、ElementSetName要素はbriefモード(<csw:ElementSetName>brief</csw:ElementSetName>)を指定します。

Briefモードの問合せ可能要素は次のとおりです。

gmd:title
gmd:graphicOverview
gmd:identifier
gmd:type
ows:BoundingBox
srv:serviceType
srv:serviceTypeVersion

Summaryモードの問合せ可能要素は次のとおりです。

gmd:abstract
gmd:characterSet
gmd:creator
gmd:contributor
srv:couplingType
ows:BoundingBox
gmd:format
gmd:formatVersion
gmd:graphicOverview
gmd:hierarchyLevelName
gmd:fileIdentifier (or identifier)
gmd:language
gmd:lineage
gmd:metadataCharacterSet
gmd:metadataStandardName
gmd:metadataStandardVersion
gmd:modified
gmd:onlineResource
gmd:parentIdentifier
gmd:publisher
gmd:resourceIdentifier
gmd:resourceLanguage
gmd:referenceSystem)
gmd:revisionDate
gmd:rights
gmd:spatialResolution
gmd:spatialRepresentationType
gmd:title
gmd:topicCategory (Certain values allowed)
gmd:type (same as hierarchyLevel)
srv:serviceOperation
srv:serviceType
srv:serviceTypeVersion

Oracle固有のComprehensiveモードの問合せ可能要素には、Summaryモードのすべての要素と次の要素が含まれます。

gmd:alternateTitle
gmd:code (related to gmd:referenceSystem)
gmd:codeSpace (related to gmd:referenceSystem)
gmd:creationDate (related to gmd:revisionDate)
gmd:crs (related to gmd:referenceSystem)
gmd:date (or gmd:modified)
gmd:denominator (related to gmd:spatialResolution)
gmd:distance (related to gmd:spatialResolution)
gmd:distanceUOM (related to gmd:spatialResolution)
gmd:hasSecurityConstraints
gmd:keyword
gmd:keywordType
gmd:organisationName
gmd:publicationDate (related to gmd:revisionDate)
gmd:relation
gmd:version (related to gmd:referenceSystem)
srv:DCP (related to srv:serviceOperation)
srv:linkage (related to srv:serviceOperation)
srv:operatesOn (related to Union set srv:OperatesOnData but processed independently than related others)
srv:operatesOnIdentifier (related to srv:OperatesOnData)
srv:operatesOnName (related to srv:OperatesOnData)
srv:operation (related to srv:serviceOperation)

Fullモードの問合せ可能要素はすべて、OGC仕様とBrief、SummaryおよびComprehensiveモードでサポートされています(CSW ISOプロファイル・リクエストのcsw:ElementSetName要素で指定)。Fullモードと他のモードの相違点は、Fullモードでは問合せは常に完全な元のISOレコードを戻すのに対し、他のモードではcsw:ElementSeName要素、特にCSW ISOプロファイル・リクエストのcsw:ElementName要素で指定された要素のみを戻します。

ISO問合せ可能要素および一部の特殊なケースに関する使用上のノートは、次のとおりです。

  • gmd:date問合せ可能要素は、gmd:modified問合せ可能要素と同じです。CSW ISOプロファイル・リクエストでは、いずれか一方を使用します。

  • gmd:formatおよびgmd:formatVersion: ElementNameモードでは、distributionFormatノード付きのパスとみなします。Summary、ComprehensiveおよびFullのElementSetNameモードでも、distributorFormatノードとみなします。Briefモードには、このような問合せ可能要素がありません。

  • gmd:hasSecurityConstraints問合せ可能要素には、次の値のみを使用できます(これらの値以外のデータはないことになっているため、これらの値を使用してください): unclassified、restricted、confidential、secret、topSecret。

  • gmd:keywordType問合せ可能要素には、次の値のみを使用できます(これらの値以外のデータはないことになっているため、これらの値を使用してください): discipline、place、stratum、temporal、theme。

  • gmd:referenceSystem: これは、referenceSystem、crs、code、codeSpaceおよびversion問合せ可能要素による和集合問合せ可能要素です。referenceSystem (crsおよびcode問合せ可能要素の別名)、crs、code、codeSpace、version問合せ可能要素のいずれかをCSW ISOプロファイル・リクエストのcsw:ElementName要素で使用すると、これらすべてがISOレコードの結果セットに存在する場合、レスポンス(要するに"related to"説明)に表示されます。CSW ISOプロファイル・リクエストのcsw:Constraint要素では、これらの問合せ可能要素をいずれも使用できます。

  • gmd:spatialResolution: これも、spatialResolution、denominator、distanceおよびdistanceUOM問合せ可能要素による和集合問合せ可能要素です。spatialResolution (denominator問合せ可能要素の別名)、denominator、distance、distanceUOMのいずれかをCSWリクエストのcsw:ElementName要素で使用すると、これらすべてがISOレコードの結果に存在する場合、レスポンス(要するに"related to"説明)に表示されます。csw:Constraint要素では、これらの問合せ可能要素をいずれも使用できます。

  • gmd:topicCategory問合せ可能要素には、次の値のみを使用できます(これらの値以外のデータはないことになっているため、これらの値を使用してください): farming、biota、boundaries、climatologyMeteorologyAtmosphere、economy、elevation、environment、geoscientificInformation、health、imageryBaseMapsEarthCover、intelligenceMilitary、inlandWaters、location、oceans、planningCadastre、society、structure、transportationおよびutilitiesCommunication。

  • ogc:Notロジックは、csw:Constraint、ogc:Filter、ogc:Not、ogc:PropertyIsLikeに対してのみサポートされます。

  • PropertyIsNullは、revisionDate、publicationDate、creationDate、contributor、creatorまたはpublisher問合せ可能要素に対してサポートされません。

  • srv:operatesOnData: これも、operatesOn、operatesOnIdentifier、operatesOnName問合せ可能要素による和集合問合せ可能要素です。これは、前述の和集合とは少し異なります。operatesOnの処理が、operatesOnIdentifierおよびoperatesOnName問合せ可能要素とは異なって、独立して行われます。operatesOnIndetifierがCSWリクエストのcsw:ElementSet要素に指定されていると、operatesOnNameがISOレコードの結果に存在する場合、レスポンスに表示されます。operatesOnIdentifier問合せ可能要素の引数も同様ですが、operatesOn問合せ可能要素は異なります。要するに、表1には"related to"説明が表示されます。csw:Constraintでは、これらの問合せ可能要素をいずれも使用できます。

  • srv:serviceOperation: これも、serviceOperation、operation、DCPおよびlinkage問合せ可能要素による和集合問合せ可能要素です。serviceOperation (operation問合せ可能要素の別名)、operation、DCP、linkageのいずれかをCSWリクエストのcsw:ElementName要素で使用すると、これらすべてがISOレコードの結果セットに存在する場合、レスポンス(要するに"related to"説明)に表示されます。csw:Constraint要素では、これらの問合せ可能要素をいずれも使用できます。

次の表に、CSW ISOプロファイル・リクエストのcsw:Constraint要素に対する(gmd:MD_Metadata/で始まる)テキスト検索パスを示します。つまり、この表の1列目の問合せ可能要素がcsw:Constraintに指定されている場合、2列目に、フィルタ処理のためにISOレコード・データで検索されるCSWサービスを示します。

表18-2 問合せ可能要素とテキスト検索パス(ISO)

問合せ可能要素 gmd:MD_Metadata/付きのテキスト検索パス

gmd:abstract

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:abstract/gco:CharacterString

gmd:alternateTitle

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:alternateTitle/gco:CharacterString

gmd:characterSet

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:characterSet/gmd:MD_CharacterSetCode[@codeListValue

gmd:code (gmd:referenceSystemに関連)

gmd:MD_Metadata/gmd:referenceSystemInfo/gmd:MD_ReferenceSystem/gmd:referenceSystemIdentifier/gmd:RS_Identifier/gmd:code/gco:CharacterString

gmd:codeSpace (gmd:referenceSystemに関連)

gmd:referenceSystemInfo/gmd:MD_ReferenceSystem/gmd:referenceSystemIdentifier/gmd:RS_Identifier/gmd:codeSpace/gco:CharacterString

gmd:contributor

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty[gmd:organisationName (where.[gmd:role/gmd:CI_RoleCode/@codeListValue="author"])

gmd:creationDate (gmd:revisionDateに関連)

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date[gmd:date/xs:date(gco:Date) (where [gmd:dateType/gmd:CI_DateTypeCode/@codeListValue="creation"])

gmd:creator

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty[gmd:organisationName (where [gmd:role/gmd:CI_RoleCode/@codeListValue="originator"])

gmd:date (またはgmd:modified)

gmd:dateStamp/xs:date(gco:Date)

gmd:denominator (gmd:spatialResolutionに関連)

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:spatialResolution/gmd:MD_Resolution/gmd:equivalentScale/gmd:MD_RepresentativeFraction/gmd:denominator

gmd:distance (gmd:spatialResolutionに関連)

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:spatialResolution/gmd:MD_Resolution/gmd:distance/gco:Distance

gmd:distanceUOM (gmd:spatialResolutionに関連)

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:spatialResolution/gmd:MD_Resolution/gmd:distance/gco:Distance[@uom

gmd:fileIdentifier (またはidentifier)

gmd:fileIdentifier/gco:CharacterString

gmd:format

gmd:distributionInfo/gmd:MD_Distribution/gmd:distributionFormat/gmd:MD_Format/gmd:version/gco:CharacterString

gmd:formatVersion

gmd:distributionInfo/gmd:MD_Distribution/gmd:distributionFormat/gmd:MD_Format/gmd:version/gco:CharacterString

gmd:graphicOverview

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:graphicOverview/gmd:MD_BrowseGraphic/gmd:fileName/gco:CharacterString

gmd:hasSecurityConstraints

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceConstraints/gmd:MD_SecurityConstraints/gmd:classification/gmd:MD_ClassificationCode[@codeListValue

gmd:hierarchyLevelName

gmd:hierarchyLevelName/gco:CharacterString

gmd:keyword

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString

gmd:keywordType

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:type/gmd:MD_KeywordTypeCode[@codeListValu

gmd:language

gmd:language/gco:CharacterString

gmd:lineage

gmd:dataQualityInfo/gmd:DQ_DataQuality/gmd:lineage/gmd:LI_Lineage/gmd:statement/gco:CharacterString

gmd:metadataCharacterSet

gmd:characterSet/gmd:MD_CharacterSetCode[@codeListValue

gmd:metadataStandardName

gmd:metadataStandardName/gco:CharacterString

gmd:metadataStandardVersion

gmd:metadataStandardVersion/gco:CharacterString

gmd:modified

gmd:dateStamp/xs:date(gco:Date)

gmd:onlineResource

gmd:distributionInfo/gmd:MD_Distribution/gmd:transferOptions/gmd:MD_DigitalTransferOptions/gmd:onLine/gmd:CI_OnlineResource/gmd:linkage/gmd:URL

gmd:organisationName

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:organisationName/gco:CharacterString

gmd:parentIdentifier

gmd:parentIdentifier/gco:CharacterString

gmd:publicationDate (gmd:revisionDateに関連)

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date[gmd:date/xs:date(gco:Date) (where [gmd:dateType/gmd:CI_DateTypeCode/@codeListValue="publication"])

gmd:publisher

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty[gmd:organisationName (where [gmd:role/gmd:CI_RoleCode/@codeListValue="publisher"])

gmd:referenceSystem

gmd:referenceSystemInfo/gmd:MD_ReferenceSystem/gmd:referenceSystemIdentifier/gmd:RS_Identifier/gmd:code/gco:CharacterString

gmd:relation

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:aggregationInfo/gmd:MD_AggregateInformation/gmd:associationType/gmd:DS_AssociationTypeCode[@codeListValue

gmd:resourceIdentifier

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:identifier/gmd:MD_Identifier/gmd:code/gco:CharacterString

gmd:resourceLanguage

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:language/gco:CharacterString

gmd:revisionDate

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date[gmd:date/xs:date(gco:Date) (where [gmd:dateType/gmd:CI_DateTypeCode/@codeListValue="revision"])

gmd:rights

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceConstraints/gmd:MD_LegalConstraints/gmd:accessConstraints/gmd:MD_RestrictionCode[@codeListValue

gmd:spatialRepresentationType

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:spatialRepresentationType/gmd:MD_SpatialRepresentationTypeCode[@codeListValue

gmd:spatialResolution

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:spatialResolution/gmd:MD_Resolution/gmd:equivalentScale/gmd:MD_RepresentativeFraction/gmd:denominator

gmd:title

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterStrin

gmd:topicCategory

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:topicCategory/gmd:MD_TopicCategoryCode

gmd:type (hierarchyLevelと同じ)

gmd:hierarchyLevel/gmd:MD_ScopeCode[@codeListValue

gmd:version (gmd:referenceSystemに関連)

gmd:MD_Metadata/gmd:referenceSystemInfo/gmd:MD_ReferenceSystem/gmd:referenceSystemIdentifier/gmd:RS_Identifier/gmd:version/gco:CharacterString

ows:BoundingBox

gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement

srv:couplingType

gmd:identificationInfo/srv:SV_ServiceIdentification/srv:couplingType/srv:SV_CouplingType[@codeListValue

srv:DCP (srv:serviceOperationに関連)

gmd:identificationInfo/srv:SV_ServiceIdentification/srv:containsOperations/srv:SV_OperationMetadata/srv:DCP/srv:DCPList[@codeListValue

srv:linkage (srv:serviceOperationに関連)

gmd:identificationInfo/srv:SV_ServiceIdentification/srv:containsOperations/srv:SV_OperationMetadata/srv:connectPoint/gmd:CI_OnlineResource/gmd:linkage/gmd:URL

srv:operatesOn (和集合srv:OperatesOnDataに関連、ただし関連する他のものとは独立して処理される)

gmd:identificationInfo/srv:SV_ServiceIdentification/srv:operatesOn[@uuidref

srv:operatesOnIdentifier (srv:OperatesOnDataに関連)

gmd:identificationInfo/srv:SV_ServiceIdentification/srv:coupledResource/srv:SV_CoupledResource/srv:identifier/gco:CharacterString

srv:operatesOnName (srv:OperatesOnDataに関連)

gmd:identificationInfo/srv:SV_ServiceIdentification/srv:coupledResource/srv:SV_CoupledResource/srv:operationName/gco:CharacterString

srv:operation (srv:serviceOperationに関連)

gmd:identificationInfo/srv:SV_ServiceIdentification/srv:containsOperations/srv:SV_OperationMetadata/srv:operationName/gco:CharacterString

srv:serviceOperation

gmd:identificationInfo/srv:SV_ServiceIdentification/srv:containsOperations/srv:SV_OperationMetadata/srv:operationName/gco:CharacterString

srv:serviceType

gmd:identificationInfo/srv:SV_ServiceIdentification/srv:serviceType/gco:LocalName

srv:serviceTypeVersion

gmd:identificationInfo/srv:SV_ServiceIdentification/srv:serviceTypeVersion/gco:CharacterString

18.6.3 CSWの操作: XMLを使用したリクエストとレスポンスの例(ISO)

このトピックでは、次の操作について、CSWエンジンへのリクエストの一部と、リクエストに対するレスポンスを示します。

18.6.3.1 GetCapabilities操作(CSW、ISO)

GetCapabilities操作では、CSWクライアントがCSWエンジン(サーバー)からカタログ・サービス・メタデータを取得できます。GetCapabilitiesリクエストのレスポンスは、サーバーに関するカタログ・サービス・メタデータ・ドキュメントを含むXMLドキュメントです。この操作では、機能が記述され、CSWインスタンスが戻すXMLドキュメントを指定します。

CSWサーバーはserviceSectionsAcceptVersionsおよびAcceptFormatsリクエスト・パラメータを受け入れ、updateSequenceパラメータを実装できます。すべてのCSWサーバーはGetCapabilities操作用にHTTP GET(つまり、GET KVP)プロトコルを実装する必要があります。このサービスでは、POST XMLおよびSOAPプロトコルもサポートされます。

サービス・メタデータ・ドキュメント(CSW GetCapabilitiesレスポンス)には、次のセクションが含まれます。

  • Service Identification: 指定したCSW実装に関するメタデータ。

  • Service Provider: CSWサービスを提供する組織に関するメタデータ。

  • Operations Metadata: 操作リクエストのURLなど、特定のCSW実装によって提供されるCSW操作に関するメタデータ。このセクションには、サポートされる各操作に使用されるレコード・タイプもリストされます。

  • Filter_Capabilities: サーバーが[OGC 04-095]で定義されている、フィルタ述語エンコーディングを実装する場合のサーバーのフィルタ機能に関するメタデータ。

GetCapabilities操作リクエストのSectionsパラメータの値によって、これらのセクションの任意の組合せをリクエストし、レスポンス・サイズを小さくすることができます。Sectionsパラメータを指定しない場合、すべてのセクションが戻されます

例18-14 GetCapabilitiesリクエスト

指定した名前空間URLで、CSWという名前のCSWサーバーの機能を取得するリクエストを次に示します。このリクエストでは、機能のドキュメント(「機能のドキュメント(CSW)」を参照)が戻されます。

<csw:GetCapabilities service="CSW" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:ows="http://www.opengis.net/ows/2.0">
  <ows:AcceptVersions>
    <ows:Version>2.0.2</ows:Version>
    <ows:Version>0.7.2</ows:Version>
  </ows:AcceptVersions>
  <ows:AcceptFormats>
    <ows:OutputFormat>text/xml</ows:OutputFormat>
  </ows:AcceptFormats>
</csw:GetCapabilities>
18.6.3.2 DescribeRecord操作(CSW、ISO)

DescribeRecord操作では、クライアントがカタログ・サービスによってサポートされる情報モデルの要素を検出できます。この操作では、情報モデルの一部またはすべてが記述されます。Oracle Spatial and Graphカタログ・サービスでは、HTTP GET、POST XMLおよびSOAPプロトコルがサポートされます。

DCMIとISOプロファイルのDescribeRecord操作の唯一の相違点はTypeNameパラメータ値にあり、ISOの場合、値は<csw:TypeName>gmd:MD_Metadata</csw:TypeName>であるのに対し、DCMIの場合は<csw:TypeName>csw:Record</csw:TypeName>です。たとえば:

http://<host:port>/oraclespatial/csw/<data source name>?service=CSW&request=DescribeRecord&version=2.0.2&outputFormat=application/xml&schemaLanguage=XMLSCHEMA&typeName=gmd:MD_Metadata&namespace=xmlns(csw=http://www.opengis.org/cat/csw)

XMLエンコードのDescribeRecordリクエストの場合、名前空間の宣言は、『Namespaces in XML』[https://www.w3.org/TR/1999/REC-xml-names-19990114/]に記載された標準のXML規則(xmlns属性)を使用して指定します。

KVPエンコーディングの場合、名前空間の宣言はNAMESPACEパラメータを使用して指定します。これは、xmlns([prefix=]namespace-url)という形式の名前空間の宣言のカンマ区切りのリストです。

TypeNameパラメータは、カタログ・サービスによって記述されるタイプ名のリストを指定します。タイプ名は、カタログの情報モデルから問合せ可能なエンティティの名前です。Oracle Spatial and Graphカタログ・サービスでは、TypeNameパラメータに使用できるのはgmd:Metadataのみです。

outputFormatパラメータは、レスポンス・ドキュメントのMIMEタイプを指定します。デフォルトの出力形式属性は、MIMEタイプapplication/xmlです。サポートされるすべての出力形式が機能のドキュメントで宣言されます。Oracle Spatial and Graphカタログ・サービスでは、デフォルトでapplication/xmlがサポートされます。

schemaLanguageパラメータを使用して、指定したタイプの記述に使用するスキーマ言語を指定します。デフォルト値はXMLSCHEMAで、XML-Schemaスキーマ記述言語を使用することを示します。Oracle Spatial and Graphカタログ・サービスでは、リクエストにこのパラメータに対するXMLSCHEMAがあれば、それがサポートされます。

HTTP GETリクエストの例を次に示します。

http://<host:port>/oraclespatial/csw/<data source name>?service=CSW&request=DescribeRecord&version=2.0.2&outputFormat=application/xml&schemaLanguage=XMLSCHEMA&typeName=csw:Record&namespace=xmlns(csw=http://www.opengis.org/cat/csw)

DescribeRecord操作のレスポンスは、DescribeRecordResponse要素を含むXMLドキュメントで、ゼロ個以上のSchemaComponentサブ要素が含まれ、リクエストしたスキーマ言語での1つ以上のタイプ名の記述がそれぞれに含まれます。

例18-15 DescribeRecordリクエスト

指定した名前空間に対して、MD_Metadataというタイプ名のレコードを記述するリクエストを次に示します。

<csw:DescribeRecord
                    xmlns:csw=“http://www.opengis.net/cat/csw/2.0.2"
                    xmlns:apiso="http://www.opengis.net/cat/csw/apiso/1.0"
                    xmlns:gmd="http://www.isotc211.org/2005/gmd"
                    xmlns:srv="http://www.isotc211.org/2005/srv"
                    xmlns:dc="http://purl.org/dc/elements/1.1/"
                    xmlns:dct="http://purl.org/dc/terms/"
                    xmlns:ows="http://www.opengis.net/ows"
                    xmlns:xi="http://www.w3.org/2001/XInclude"
                    xmlns:xlink="http://www.w3.org/1999/xlink"
                    xmlns:xs="http://www.w3.org/2001/XMLSchema"
                    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                    service="CSW"
                    version="2.0.2">
  <csw:TypeName>gmd:MD_Metadata</csw:TypeName>
</csw:DescribeRecord>

例18-16 DescribeRecordのレスポンス

前述のリクエストに対するレスポンスは、次のとおりです。レスポンスはXMLスキーマ定義(XSD)です。各要素の説明は、レスポンス内の<xsd:documentation>要素に含まれるコメントを参照してください。

<?xml version='1.0' encoding='UTF-8'?>
<csw:DescribeRecordResponse xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dct="http://purl.org/dc/terms/" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:ogc="http://www.opengis.net/ogc" xmlns:ows="http://www.opengis.net/ows" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd">
  <csw:SchemaComponent schemaLanguage="http://www.w3.org/XML/Schema" targetNamespace="http://www.isotc211.org/2005/gmd">
        <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gmd="http://www.isotc211.org/2005/gmd" targetNamespace="http://www.isotc211.org/2005/gmd" elementFormDefault="qualified" version="2012-07-13">
            <!-- ================================= Annotation ================================ -->
            <xs:annotation>
                <xs:documentation>Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This metadataEntity.xsd schema implements the UML conceptual schema defined in A.2.1 of ISO 19115:2003. It contains the implementation of the class MD_Metadata.</xs:documentation>
            </xs:annotation>
            <!-- ================================== Imports ================================== -->
            <xs:import namespace="http://www.isotc211.org/2005/gco" schemaLocation="http://schemas.opengis.net/iso/19139/20070417/gco/gco.xsd"/>
            <xs:include schemaLocation="http://schemas.opengis.net/iso/19139/20070417/gmd/gmd.xsd"/>
            <xs:include schemaLocation="http://schemas.opengis.net/iso/19139/20070417/gmd/spatialrepresentation.xsd"/>
            <xs:include schemaLocation="http://schemas.opengis.net/iso/19139/20070417/gmd/metadataextension.xsd"/>
            <xs:include schemaLocation="http://schemas.opengis.net/iso/19139/20070417/gmd/content.xsd"/>
            <xs:include schemaLocation="http://schemas.opengis.net/iso/19139/20070417/gmd/metadataapplication.xsd"/>
            <xs:include schemaLocation="http://schemas.opengis.net/iso/19139/20070417/gmd/applicationschema.xsd"/>
            <xs:include schemaLocation="http://schemas.opengis.net/iso/19139/20070417/gmd/portrayalcatalogue.xsd"/>
            <xs:include schemaLocation="http://schemas.opengis.net/iso/19139/20070417/gmd/dataquality.xsd"/>
            <xs:include schemaLocation="http://schemas.opengis.net/iso/19139/20070417/gmd/freetext.xsd"/>
            <!-- ########################################################################### -->
            <!-- ########################################################################### -->
            <!-- ================================== Classes ================================= -->
            <xs:complexType name="MD_Metadata_Type">
                <xs:annotation>
                    <xs:documentation>Information about the metadata</xs:documentation>
                </xs:annotation>
                <xs:complexContent>
                    <xs:extension base="gco:AbstractObject_Type">
                        <xs:sequence>
                            <xs:element name="fileIdentifier" type="gco:CharacterString_PropertyType" minOccurs="0"/>
                            <xs:element name="language" type="gco:CharacterString_PropertyType" minOccurs="0"/>
                            <xs:element name="characterSet" type="gmd:MD_CharacterSetCode_PropertyType" minOccurs="0"/>
                            <xs:element name="parentIdentifier" type="gco:CharacterString_PropertyType" minOccurs="0"/>
                            <xs:element name="hierarchyLevel" type="gmd:MD_ScopeCode_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
                            <xs:element name="hierarchyLevelName" type="gco:CharacterString_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
                            <xs:element name="contact" type="gmd:CI_ResponsibleParty_PropertyType" maxOccurs="unbounded"/>
                            <xs:element name="dateStamp" type="gco:Date_PropertyType"/>
                            <xs:element name="metadataStandardName" type="gco:CharacterString_PropertyType" minOccurs="0"/>
                            <xs:element name="metadataStandardVersion" type="gco:CharacterString_PropertyType" minOccurs="0"/>
                            <xs:element name="dataSetURI" type="gco:CharacterString_PropertyType" minOccurs="0"/>
                            <xs:element name="locale" type="gmd:PT_Locale_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
                            <xs:element name="spatialRepresentationInfo" type="gmd:MD_SpatialRepresentation_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
                            <xs:element name="referenceSystemInfo" type="gmd:MD_ReferenceSystem_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
                            <xs:element name="metadataExtensionInfo" type="gmd:MD_MetadataExtensionInformation_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
                            <xs:element name="identificationInfo" type="gmd:MD_Identification_PropertyType" maxOccurs="unbounded"/>
                            <xs:element name="contentInfo" type="gmd:MD_ContentInformation_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
                            <xs:element name="distributionInfo" type="gmd:MD_Distribution_PropertyType" minOccurs="0"/>
                            <xs:element name="dataQualityInfo" type="gmd:DQ_DataQuality_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
                            <xs:element name="portrayalCatalogueInfo" type="gmd:MD_PortrayalCatalogueReference_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
                            <xs:element name="metadataConstraints" type="gmd:MD_Constraints_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
                            <xs:element name="applicationSchemaInfo" type="gmd:MD_ApplicationSchemaInformation_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
                            <xs:element name="metadataMaintenance" type="gmd:MD_MaintenanceInformation_PropertyType" minOccurs="0"/>
                            <xs:element name="series" type="gmd:DS_Aggregate_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
                            <xs:element name="describes" type="gmd:DS_DataSet_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
                            <xs:element name="propertyType" type="gco:ObjectReference_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
                            <xs:element name="featureType" type="gco:ObjectReference_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
                            <xs:element name="featureAttribute" type="gco:ObjectReference_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <!-- ........................................................................ -->
            <xs:element name="MD_Metadata" type="gmd:MD_Metadata_Type"/>
            <!-- ........................................................................ -->
            <xs:complexType name="MD_Metadata_PropertyType">
                <xs:sequence minOccurs="0">
                    <xs:element ref="gmd:MD_Metadata"/>
                </xs:sequence>
                <xs:attributeGroup ref="gco:ObjectReference"/>
                <xs:attribute ref="gco:nilReason"/>
            </xs:complexType>
            <!-- =========================================================================== -->
        </xs:schema>
  </csw:SchemaComponent>
</csw:DescribeRecordResponse>
18.6.3.3 GetRecords操作(CSW、ISO)

CSWでのリソース検出の主なツールは、検索提示の2つの操作です。HTTPプロトコル・バインディングでは、これらはGetRecords操作という形で組み合され、検索と提示を実行します。

GetRecords操作の"検索"部分はQuery要素を使用してエンコードされます。この要素には、typeNameパラメータおよびConstraintパラメータが含まれます。

  • typeNameパラメータを使用して、カタログ・サービスのどのエンティティ(レコード・タイプ)に問合せを行うかを指定します。

  • Constraintパラメータを使用して、どの問合せ制約を適用してリクエスト・セットを識別するかを指定します。

GetRecords操作の"提示"部分は、outputSchemaパラメータおよびElementName/ElementSetNameパラメータを使用してエンコードされます。

  • outputSchemaパラメータは、GetRecords操作へのレスポンスの生成に使用されるXSDスキーマ(つまり、http://www.opengis.net/cat/csw/2.0.2)を示します。

  • ElementNameまたはElementSetNameパラメータを使用して、GetRecordsレスポンスの各レコードに含めるoutputSchemaのプロパティを指定します。

(次の記述では、namespaceoutputFormatなどのDescribeRecordにも使用された一部のパラメータを繰り返していません。)

resultTypeパラメータは、hitsresultsまたはvalidateという値をとることができます。この値によって、カタログ・サービスが結果セットのサマリーのみを戻すか(hits)、結果セットの1つ以上のレコードを含めるか(results)、リクエスト・メッセージを検証するか(validate)が決まります。

startPositionパラメータを使用して、カタログが出力の生成を開始するレコードの位置を示します。デフォルト値は1で、結果セットの最初のレコードです。

maxRecordsパラメータを使用して、問合せの結果セットから戻されるレコードの最大数を定義します。指定されない場合、10レコードが戻されます。値がゼロに設定された場合、resultTypehitsに設定した場合と同じ動作になります。

typeNamesパラメータは、問合せの述語で制約される可能性のあるカタログの情報モデル内の1つ以上の問合せ可能なエンティティの名前のリストです。(god:MD_MetadataはISOプロファイルを指定します。)

ElementNameパラメータを使用して、問合せがGetRecords操作のレスポンスで提示する、outputSchemaパラメータを使用して指定する出力スキーマの1つ以上のメタデータ・レコード要素を指定します。

ElementSetNameパラメータはbrief、summary、comprehensiveまたはfullで、サービスがクライアントに提示する名前付きセットを示します。

ElementNameおよびElementSetNameは、相互に排他的なパラメータです。1つの問合せには1つのElementSetNameパラメータまたは1つ以上のElementSetNameパラメータを指定します。

Oracle Spatial and Graph CSWサービスの場合、ConstraintLanguageパラメータはFilterである必要があります。(CQLはISOプロファイルではサポートされていません。)

constraintパラメータは、特定のレコードの取得に使用するフィルタ機能を指定します。次のフィルタ機能がOracle Spatial and Graph CSWサービスでサポートされます。

  • 論理演算子: And、Or、Not

  • 比較演算子: PropertyIsEqualTo、PropertyIsNotEqualTo、PropertyIsLessThan、PropertyIsGreaterThan、PropertyIsLessThanOrEqualTo、PropertyIsGreaterThanOrEqualTo、PropertyIsLike、PropertyIsNull、csw:AnyText

  • 空間演算子: BBOX

  • 単純算術: add、sub、div、mul、function

GetRecordsResponse要素は、GetRecordsリクエストに対するレスポンスのコンテナです。

SearchStatus要素は、レスポンスのステータスを示します。検索ステータスは、結果セットが作成された日時を示すタイムスタンプ属性で構成されます。

SearchResults要素には、SearchResults要素が含まれます。この要素はGetRecords操作で戻されるレコードのセットです。SearchResults要素には、ElementSet(brief/summary/full)numberOfRecordaMatchednumberOfRecordsReturnednextRecordといった属性が使用されます。

Oracle Spatial and Graphカタログ・サービスでは、GetRecords操作にはHTTP GET、POST XMLおよびSOAPプロトコルがサポートされます。

例18-17 PropertyIsEqualToおよびPropertyIsLikeを使用したGetRecordsリクエスト

PropertyIsEqualToおよびPropertyIsLikeを指定したGetRecordsリクエストを次に示します。タイプが文字列データ・セットと等しいか、形式が"WAR"トークンを含む文字列値であるレコードの結果セットが検出されます。(escapeCharsingleCharおよびwildcardの文字は自由に指定できます。)

<csw:GetRecords 
                xmlns:apiso="http://www.opengis.net/cat/csw/apiso/1.0"
                xmlns:gmd="http://www.isotc211.org/2005/gmd"
                xmlns:srv="http://www.isotc211.org/2005/srv"
                xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
                xmlns:dc="http://purl.org/dc/elements/1.1/"
                xmlns:dct="http://purl.org/dc/terms/"
                xmlns:gml="http://www.opengis.net/gml"
                xmlns:ogc="http://www.opengis.net/ogc"
                xmlns:ows="http://www.opengis.net/ows"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                xmlns:xlink="http://www.w3.org/1999/xlink"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                resultType="results"
                service="CSW"
                version="2.0.2">
   <csw:Query typeNames="gmd:MD_Metadata">
      <csw:ElementSetName>summary</csw:ElementSetName>
      <csw:Constraint version="1.1.0">
         <ogc:Filter>
            <ogc:Or>
               <ogc:PropertyIsLike escapeChar="\" singleChar="?" wildCard="*">
                  <ogc:PropertyName>apiso:format</ogc:PropertyName>
                  <ogc:Literal>WAR</ogc:Literal>
               </ogc:PropertyIsLike>
               <ogc:PropertyIsEqualTo>
                  <ogc:PropertyName>apiso:type</ogc:PropertyName>
                  <ogc:Literal>dataset</ogc:Literal>
               </ogc:PropertyIsEqualTo>
            </ogc:Or>
         </ogc:Filter>
      </csw:Constraint>
   </csw:Query>
</csw:GetRecords>

GetRecordsリクエストの場合、ElementSetNamesummaryfullbriefまたはcomprehensiveのいずれかです。

CSW 2.0.2仕様では、ElementSetName (1つのみ)またはElementName (1つ以上)をGetRecordsリクエストに指定できます。

Spatial and Graphカタログ・サービスでは、GetRecordsリクエストの同期処理のみサポートされます。

例18-18 PropertyIsEqualToおよびPropertyIsLikeを使用したGetRecordsのレスポンス

前述のリクエストに対するレスポンスは、次のとおりです。

<csw:GetRecordsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:srv="http://www.isotc211.org/2005/srv" xmlns:dct="http://purl.org/dc/terms/" xmlns:ns7="http://www.opengis.net/ows/2.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:ows="http://www.opengis.net/ows" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:gco="http://www.isotc211.org/2005/gco" version="2.0.2" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 ../../cswAll.xsd">
  <csw:SearchStatus timestamp="2017-09-28T02:26:48Z"></csw:SearchStatus>
  <csw:SearchResults elementSet="summary" recordSchema="http://www.isotc211.org/2005/gmd" numberOfRecordsMatched="2" numberOfRecordsReturned="2" nextRecord="0">
    <csw:SummaryRecordISO>
      <gmd:abstract>This feature class is Test Data for Oracle CSW 2.0.2 Service.</gmd:abstract>
      <gmd:creator>Jane Doe</gmd:creator>
      <gmd:EX_GeographicBoundingBox dimensions="2">
        <gmd:WestBoundLongitude>-109.047013285</gmd:WestBoundLongitude>
        <gmd:SouthBoundLatitude>34.2585812994</gmd:SouthBoundLatitude>
        <gmd:EastBoundLongitude>-106.876969333</gmd:EastBoundLongitude>
        <gmd:NorthBoundLatitude>37.0002329277</gmd:NorthBoundLatitude>
      </gmd:EX_GeographicBoundingBox>
      <gmd:format>WAR</gmd:format>
      <gmd:format>ZIP</gmd:format>
      <gmd:formatVersion>12.2.0.2</gmd:formatVersion>
      <gmd:formatVersion>Unknown Format Version</gmd:formatVersion>
      <gmd:graphicOverview>
        <gmd:MD_BrowseGraphic>
          <gmd:fileName>webservice_catalog_services.png</gmd:fileName>
          <gmd:fileDescription>large_thumbnail</gmd:fileDescription>
          <gmd:fileType>png</gmd:fileType>
        </gmd:MD_BrowseGraphic>
      </gmd:graphicOverview>
      <gmd:hierarchyLevelName>UTI</gmd:hierarchyLevelName>
      <gmd:fileIdentifier>210553_L400_S0005K_00000000_00002b2b-26c0-4aa1-a444-c7e1eee8cccc</gmd:fileIdentifier>
      <gmd:language>eng</gmd:language>
      <gmd:lineage>
        <gmd:LI_Lineage>
          <gmd:statement>DATA FROM TNRIS</gmd:statement>
          <gmd:processStep>
            <gmd:LI_ProcessStep>
              <gmd:description>The data was downloaded from TNRIS</gmd:description>
              <gmd:rationale>No rationale</gmd:rationale>
              <gmd:dateTime>
                <gco:DateTime>1998-01-01T00:00:00.000Z</gco:DateTime>
              </gmd:dateTime>
              <gmd:processor>
                <gmd:CI_ResponsibleParty>
                  <gmd:individualName>No individualName</gmd:individualName>
                  <gmd:organisationName>Oracle Spatial and Graph Labs</gmd:organisationName>
                  <gmd:positionName>Technical Member</gmd:positionName>
                  <gmd:contactInfo>
                    <gmd:CI_Contact>
                      <gmd:phone>
                        <gmd:CI_Telephone>
                          <csw:voice>603-897-8888</csw:voice>
                          <csw:facsimile>603-897-4444</csw:facsimile>
                        </gmd:CI_Telephone>
                     </gmd:phone>
                      <gmd:address>
                        <gmd:CI_Address>
                          <gmd:deliveryPoint>ABC03 3330</gmd:deliveryPoint>
                          <gmd:deliveryPoint>3 Oracle Drive</gmd:deliveryPoint>
                          <gmd:city>Nashua</gmd:city>
                          <gmd:administrativeArea>NH</gmd:administrativeArea>
                          <gmd:postalCode>03062-0003</gmd:postalCode>
                          <gmd:country>USA</gmd:country>
                          <gmd:electronicMailAddress>baris.kazar@oracle.com</gmd:electronicMailAddress>
                        </gmd:CI_Address>
                      </gmd:address>
                      <gmd:onlineResource>
                        <gmd:CI_OnlineResource>
                          <gmd:linkage>http://www.myoracle.com/</gmd:linkage>
                          <gmd:protocol>HTTP</gmd:protocol>
                          <gmd:applicationProfile>The web browser</gmd:applicationProfile>
                          <gmd:name>The Data Dictionary</gmd:name>
                          <gmd:description>This http link contains the data dictionary for the resource.</gmd:description>
                          <gmd:function>
                            <gmd:CI_OnLineFunctionCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode" codeListValue="information" codeSpace="002">information</gmd:CI_OnLineFunctionCode>
                          </gmd:function>
                        </gmd:CI_OnlineResource>
                      </gmd:onlineResource>
                      <gmd:hoursOfService>8AM - 7PM Eastern Time</gmd:hoursOfService>
                      <gmd:contactInstructions>No contactInstructions</gmd:contactInstructions>
                    </gmd:CI_Contact>
                  </gmd:contactInfo>
                  <gmd:role>
                    <gmd:CI_RoleCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" codeListValue="processor" codeSpace="No value"></gmd:CI_RoleCode>
                  </gmd:role>
                </gmd:CI_ResponsibleParty>
              </gmd:processor>
            </gmd:LI_ProcessStep>
          </gmd:processStep>
        </gmd:LI_Lineage>
      </gmd:lineage>
      <gmd:metadataCharacterSet>utf8</gmd:metadataCharacterSet>
      <gmd:metadataStandardName>ISO19115</gmd:metadataStandardName>
      <gmd:metadataStandardVersion>2003/Cor.1:2008</gmd:metadataStandardVersion>
      <gmd:modified>2015-10-22</gmd:modified>
      <gmd:onlineResource>http://www.oracle.com/oraclespatial/mycsw1/</gmd:onlineResource>
      <gmd:parentIdentifier>CSW-WEB-SERVICES</gmd:parentIdentifier>
      <gmd:publisher>Ali Ali</gmd:publisher>
      <gmd:resourceIdentifier>Downloadable Data</gmd:resourceIdentifier>
      <gmd:resourceIdentifier>GHRSST &gt; Group for High Resolution Sea Surface Temperature</gmd:resourceIdentifier>
      <gmd:resourceLanguage>eng; USA</gmd:resourceLanguage>
      <gmd:referenceSystem>
        <gmd:code> urn:ogc:def:crs:EPSG:4957</gmd:code>
        <gmd:codeSpace>http://someurl</gmd:codeSpace>
        <gmd:version>6.18.3</gmd:version>
      </gmd:referenceSystem>
      <gmd:revisionDate>2017-03-21</gmd:revisionDate>
      <gmd:rights>otherRestrictions</gmd:rights>
      <gmd:spatialResolution>
        <gmd:denominator>25000</gmd:denominator>
      </gmd:spatialResolution>
      <gmd:spatialResolution>
        <gmd:denominator>50000</gmd:denominator>
      </gmd:spatialResolution>
      <gmd:spatialResolution uom="http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/uom/gmxUom.xml#m">
        <gmd:distance>3.0</gmd:distance>
      </gmd:spatialResolution>
      <gmd:spatialResolution uom="http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/uom/gmxUom.xml#m">
        <gmd:distance>2.0</gmd:distance>
      </gmd:spatialResolution>
      <gmd:spatialRepresentationType>vector</gmd:spatialRepresentationType>
      <gmd:title>European Petroleum Survey Group (EPSG) Geodetic Parameter Registry</gmd:title>
      <gmd:title>Oracle CSW 2.0.2 Service Record</gmd:title>
      <gmd:topicCategory>planningCadastre</gmd:topicCategory>
      <gmd:type>dataset</gmd:type>
    </csw:SummaryRecordISO>
    <csw:SummaryRecordISO>
      <gmd:abstract>This feature class is Test Data for Oracle CSW 2.0.2 Service.</gmd:abstract>
      <gmd:characterSet>utf16</gmd:characterSet>
      <gmd:contributor>John Doe</gmd:contributor>
      <gmd:EX_GeographicBoundingBox dimensions="2">
        <gmd:WestBoundLongitude>-119.047013285</gmd:WestBoundLongitude>
        <gmd:SouthBoundLatitude>24.2585812994</gmd:SouthBoundLatitude>
        <gmd:EastBoundLongitude>-116.876969333</gmd:EastBoundLongitude>
        <gmd:NorthBoundLatitude>27.0002329277</gmd:NorthBoundLatitude>
      </gmd:EX_GeographicBoundingBox>
      <gmd:format>ZIP</gmd:format>
      <gmd:formatVersion>Unknown Format Version</gmd:formatVersion>
      <gmd:graphicOverview>
        <gmd:MD_BrowseGraphic>
          <gmd:fileName>webservice_catalog_services2.jpeg</gmd:fileName>
          <gmd:fileDescription>medium_thumbnail</gmd:fileDescription>
          <gmd:fileType>jpeg</gmd:fileType>
        </gmd:MD_BrowseGraphic>
      </gmd:graphicOverview>
      <gmd:hierarchyLevelName>UTI</gmd:hierarchyLevelName>
      <gmd:fileIdentifier>210553_L400_S0005K_00000000_00002b2b-26c0-4aa1-a444-c7e1eee8dddd</gmd:fileIdentifier>
      <gmd:language>eng</gmd:language>
      <gmd:lineage>
        <gmd:LI_Lineage>
          <gmd:statement>No statement</gmd:statement>
          <gmd:processStep>
            <gmd:LI_ProcessStep>
              <gmd:description>The data was downloaded from TNRIS</gmd:description>
              <gmd:rationale>No rationale</gmd:rationale>
              <gmd:dateTime>
                <gco:DateTime>1999-01-01T00:00:00.000Z</gco:DateTime>
              </gmd:dateTime>
              <gmd:processor>
                <gmd:CI_ResponsibleParty>
                  <gmd:individualName>No individualName</gmd:individualName>
                  <gmd:organisationName>Oracle Spatial and Graph Labs</gmd:organisationName>
                  <gmd:positionName>Manager</gmd:positionName>
                  <gmd:contactInfo>
                    <gmd:CI_Contact>
                      <gmd:phone>
                        <gmd:CI_Telephone>
                          <csw:voice>603-897-7777</csw:voice>
                          <csw:facsimile>603-897-5555</csw:facsimile>
                        </gmd:CI_Telephone>
                      </gmd:phone>
                      <gmd:address>
                        <gmd:CI_Address>
                          <gmd:deliveryPoint>ABC03 3330</gmd:deliveryPoint>
                          <gmd:deliveryPoint>3 Oracle Drive</gmd:deliveryPoint>
                          <gmd:city>Nashua</gmd:city>
                          <gmd:administrativeArea>NH</gmd:administrativeArea>
                          <gmd:postalCode>03062-0003</gmd:postalCode>
                          <gmd:country>USA</gmd:country>
                          <gmd:electronicMailAddress>qingyun.xie@oracle.com</gmd:electronicMailAddress>
                        </gmd:CI_Address>
                      </gmd:address>
                      <gmd:hoursOfService>8AM - 7PM Eastern Time</gmd:hoursOfService>
                      <gmd:contactInstructions>No contactInstructions</gmd:contactInstructions>
                    </gmd:CI_Contact>
                  </gmd:contactInfo>
                  <gmd:role>
                    <gmd:CI_RoleCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" codeListValue="processor" codeSpace="No value">processor</gmd:CI_RoleCode>
                  </gmd:role>
                </gmd:CI_ResponsibleParty>
              </gmd:processor>
            </gmd:LI_ProcessStep>
          </gmd:processStep>
        </gmd:LI_Lineage>
      </gmd:lineage>
      <gmd:metadataCharacterSet>utf8</gmd:metadataCharacterSet>
      <gmd:metadataStandardName>ISO19139</gmd:metadataStandardName>
      <gmd:metadataStandardVersion>2003/Cor.1:2006</gmd:metadataStandardVersion>
      <gmd:modified>2015-10-21</gmd:modified>
      <gmd:onlineResource>http://www.oracle.com/oraclespatial/mycsw2/</gmd:onlineResource>
      <gmd:parentIdentifier>CSW-WEB-SERVICES</gmd:parentIdentifier>
      <gmd:resourceIdentifier>Downloadable Data</gmd:resourceIdentifier>
      <gmd:resourceIdentifier>urn:de.pangaea:project:IODP</gmd:resourceIdentifier>
      <gmd:resourceIdentifier>urn:org.iodp:exp:302</gmd:resourceIdentifier>
      <gmd:resourceIdentifier>urn:org.iodp:exp:302:site:M0001</gmd:resourceIdentifier>
      <gmd:resourceIdentifier>urn:org.iodp:exp:302:site:M0001:hole:A</gmd:resourceIdentifier>
      <gmd:resourceLanguage>eng; USA</gmd:resourceLanguage>
      <gmd:referenceSystem>
        <gmd:code> urn:ogc:def:crs:EPSG:4957</gmd:code>
        <gmd:codeSpace>No codeSpace value for ReferenceSystem</gmd:codeSpace>
        <gmd:version>6.18.3</gmd:version>
      </gmd:referenceSystem>
      <gmd:revisionDate>2015-11-23T14:44:00</gmd:revisionDate>
      <gmd:rights>license</gmd:rights>
      <gmd:spatialResolution>
        <gmd:denominator>60000</gmd:denominator>
      </gmd:spatialResolution>
      <gmd:spatialResolution uom="http://standards.iso.org/ittf2/PubliclyAvailableStandards/ISO_19139_Schemas/resources/uom/gmxUom.xml#m">
        <gmd:distance>2.8</gmd:distance>
      </gmd:spatialResolution>
      <gmd:spatialRepresentationType>vector</gmd:spatialRepresentationType>
      <gmd:title>European Petroleum Survey Group (EPSG) Geodetic Parameter Registry</gmd:title>
      <gmd:title>Oracle CSW 2.0.2 Service Record</gmd:title>
      <gmd:topicCategory>planningCadastre</gmd:topicCategory>
      <gmd:type>dataset</gmd:type>
    </csw:SummaryRecordISO>
  </csw:SearchResults>
</csw:GetRecordsResponse>

例18-19 PropertyIsLikeを使用したGetRecordsリクエスト

PropertyIsLikeを使用したGetRecordsのリクエストを次に示します。ここでは、クライアントは、プロパティ・タイトルが"Oracle CSW*Service"のようなレコードをフェッチします。(escapeCharsingleCharおよびwildcardの文字は自由に指定できます。)

<csw:GetRecords 
                xmlns:gmd="http://www.isotc211.org/2005/gmd"
                xmlns:apiso="http://www.opengis.net/cat/csw/apiso/1.0"
                xmlns:srv="http://www.isotc211.org/2005/srv"
                xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
                xmlns:dc="http://purl.org/dc/elements/1.1/"
                xmlns:dct="http://purl.org/dc/terms/"
                xmlns:gml="http://www.opengis.net/gml"
                xmlns:ogc="http://www.opengis.net/ogc"
                xmlns:ows="http://www.opengis.net/ows"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                xmlns:xlink="http://www.w3.org/1999/xlink"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                resultType="results"
                service="CSW"
                version="2.0.2">
   <csw:Query typeNames="gmd:MD_Metadata">
      <csw:ElementSetName>summary</csw:ElementSetName>
      <csw:Constraint version="1.1.0">
         <ogc:Filter>
            <ogc:PropertyIsLike escapeChar="\" singleChar="?" wildCard="*">
               <ogc:PropertyName>apiso:title</ogc:PropertyName>
               <ogc:Literal>Oracle CSW*Service*</ogc:Literal>
            </ogc:PropertyIsLike>
         </ogc:Filter>
      </csw:Constraint>
   </csw:Query>
</csw:GetRecords>

例18-20 PropertyIsLikeを使用したGetRecordsのレスポンス

前述のリクエストに対するレスポンスは、次のとおりです。

<csw:GetRecordsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:srv="http://www.isotc211.org/2005/srv" xmlns:dct="http://purl.org/dc/terms/" xmlns:ns7="http://www.opengis.net/ows/2.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:ows="http://www.opengis.net/ows" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:gco="http://www.isotc211.org/2005/gco" version="2.0.2" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 ../../cswAll.xsd">
  <csw:SearchStatus timestamp="2017-09-14T01:32:01Z"></csw:SearchStatus>
  <csw:SearchResults elementSet="summary" recordSchema="http://www.isotc211.org/2005/gmd" numberOfRecordsMatched="2" numberOfRecordsReturned="2" nextRecord="0">
    <csw:SummaryRecordISO>
      <gmd:abstract>This feature class is Test Data for Oracle CSW 2.0.2 Service.</gmd:abstract>
      <gmd:creator>Jane Doe</gmd:creator>
      <gmd:EX_GeographicBoundingBox dimensions="2">
        <gmd:WestBoundLongitude>-109.047013285</gmd:WestBoundLongitude>
        <gmd:SouthBoundLatitude>34.2585812994</gmd:SouthBoundLatitude>
        <gmd:EastBoundLongitude>-106.876969333</gmd:EastBoundLongitude>
        <gmd:NorthBoundLatitude>37.0002329277</gmd:NorthBoundLatitude>
      </gmd:EX_GeographicBoundingBox>
      <gmd:format>WAR</gmd:format>
      <gmd:format>ZIP</gmd:format>
      <gmd:formatVersion>12.2.0.2</gmd:formatVersion>
      <gmd:formatVersion>Unknown Format Version</gmd:formatVersion>
      <gmd:graphicOverview>
        <gmd:MD_BrowseGraphic>
          <gmd:fileName>webservice_catalog_services.png</gmd:fileName>
          <gmd:fileDescription>large_thumbnail</gmd:fileDescription>
          <gmd:fileType>png</gmd:fileType>
        </gmd:MD_BrowseGraphic>
      </gmd:graphicOverview>
      <gmd:hierarchyLevelName>UTI</gmd:hierarchyLevelName>
      <gmd:fileIdentifier>210553_L400_S0005K_00000000_00002b2b-26c0-4aa1-a444-c7e1eee8cccc</gmd:fileIdentifier>
      <gmd:language>eng</gmd:language>
      <gmd:lineage>
        <gmd:LI_Lineage>
          <gmd:statement>DATA FROM TNRIS</gmd:statement>
          <gmd:processStep>
            <gmd:LI_ProcessStep>
              <gmd:description>The data was downloaded from TNRIS</gmd:description>
              <gmd:rationale>No rationale</gmd:rationale>
              <gmd:dateTime>
                <gco:DateTime>1998-01-01T00:00:00.000-08:00</gco:DateTime>
              </gmd:dateTime>
              <gmd:processor>
                <gmd:CI_ResponsibleParty>
                  <gmd:individualName>No individualName</gmd:individualName>
                  <gmd:organisationName>Oracle Spatial and Graph Labs</gmd:organisationName>
                  <gmd:positionName>Technical Member</gmd:positionName>
                  <gmd:contactInfo>
                    <gmd:CI_Contact>
                      <gmd:phone>
                        <gmd:CI_Telephone>
                          <csw:voice>603-897-8888</csw:voice>
                          <csw:facsimile>603-897-4444</csw:facsimile>
                        </gmd:CI_Telephone>
                      </gmd:phone>
                      <gmd:address>
                        <gmd:CI_Address>
                          <gmd:deliveryPoint>ABC03 3330</gmd:deliveryPoint>
                          <gmd:deliveryPoint>3 Oracle Drive</gmd:deliveryPoint>
                          <gmd:city>Nashua</gmd:city>
                          <gmd:administrativeArea>NH</gmd:administrativeArea>
                          <gmd:postalCode>03062-0003</gmd:postalCode>
                          <gmd:country>USA</gmd:country>
                          <gmd:electronicMailAddress>baris.kazar@oracle.com</gmd:electronicMailAddress>
                        </gmd:CI_Address>
                      </gmd:address>
                      <gmd:onlineResource>
                        <gmd:CI_OnlineResource>
                          <gmd:linkage>http://www.myoracle.com/</gmd:linkage>
                          <gmd:protocol>HTTP</gmd:protocol>
                          <gmd:applicationProfile>The web browser</gmd:applicationProfile>
                          <gmd:name>The Data Dictionary</gmd:name>
                          <gmd:description>This http link contains the data dictionary for the resource.</gmd:description>
                          <gmd:function>
                            <gmd:CI_OnLineFunctionCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode" codeListValue="information" codeSpace="002">information</gmd:CI_OnLineFunctionCode>
                          </gmd:function>
                        </gmd:CI_OnlineResource>
                      </gmd:onlineResource>
                      <gmd:hoursOfService>8AM - 7PM Eastern Time</gmd:hoursOfService>
                      <gmd:contactInstructions>No contactInstructions</gmd:contactInstructions>
                    </gmd:CI_Contact>
                  </gmd:contactInfo>
                  <gmd:role>
                    <gmd:CI_RoleCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" codeListValue="processor" codeSpace="No value"></gmd:CI_RoleCode>
                  </gmd:role>
                </gmd:CI_ResponsibleParty>
              </gmd:processor>
            </gmd:LI_ProcessStep>
          </gmd:processStep>
        </gmd:LI_Lineage>
      </gmd:lineage>
      <gmd:metadataCharacterSet>utf8</gmd:metadataCharacterSet>
      <gmd:metadataStandardName>ISO19115</gmd:metadataStandardName>
      <gmd:metadataStandardVersion>2003/Cor.1:2008</gmd:metadataStandardVersion>
      <gmd:modified>2015-10-22</gmd:modified>
      <gmd:onlineResource>http://www.oracle.com/oraclespatial/mycsw1/</gmd:onlineResource>
      <gmd:parentIdentifier>CSW-WEB-SERVICES</gmd:parentIdentifier>
      <gmd:publisher>Ali Ali</gmd:publisher>
      <gmd:resourceIdentifier>Downloadable Data</gmd:resourceIdentifier>
      <gmd:resourceIdentifier>GHRSST &gt; Group for High Resolution Sea Surface Temperature</gmd:resourceIdentifier>
      <gmd:resourceLanguage>eng; USA</gmd:resourceLanguage>
      <gmd:referenceSystem>
        <gmd:code> urn:ogc:def:crs:EPSG:4957</gmd:code>
        <gmd:codeSpace>http://someurl</gmd:codeSpace>
        <gmd:version>6.18.3</gmd:version>
      </gmd:referenceSystem>
      <gmd:revisionDate>2017-03-21</gmd:revisionDate>
      <gmd:rights>otherRestrictions</gmd:rights>
      <gmd:spatialResolution>
        <gmd:denominator>25000</gmd:denominator>
      </gmd:spatialResolution>
      <gmd:spatialResolution>
        <gmd:denominator>50000</gmd:denominator>
      </gmd:spatialResolution>
      <gmd:spatialResolution uom="http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/uom/gmxUom.xml#m">
        <gmd:distance>3.0</gmd:distance>
      </gmd:spatialResolution>
      <gmd:spatialResolution uom="http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/uom/gmxUom.xml#m">
        <gmd:distance>2.0</gmd:distance>
      </gmd:spatialResolution>
      <gmd:spatialRepresentationType>vector</gmd:spatialRepresentationType>
      <gmd:title>European Petroleum Survey Group (EPSG) Geodetic Parameter Registry</gmd:title>
      <gmd:title>Oracle CSW 2.0.2 Service Record</gmd:title>
      <gmd:topicCategory>planningCadastre</gmd:topicCategory>
      <gmd:type>dataset</gmd:type>
    </csw:SummaryRecordISO>
    <csw:SummaryRecordISO>
      <gmd:abstract>This feature class is Test Data for Oracle CSW 2.0.2 Service.</gmd:abstract>
      <gmd:characterSet>utf16</gmd:characterSet>
      <gmd:contributor>John Doe</gmd:contributor>
      <gmd:EX_GeographicBoundingBox dimensions="2">
        <gmd:WestBoundLongitude>-119.047013285</gmd:WestBoundLongitude>
        <gmd:SouthBoundLatitude>24.2585812994</gmd:SouthBoundLatitude>
        <gmd:EastBoundLongitude>-116.876969333</gmd:EastBoundLongitude>
        <gmd:NorthBoundLatitude>27.0002329277</gmd:NorthBoundLatitude>
      </gmd:EX_GeographicBoundingBox>
      <gmd:format>ZIP</gmd:format>
      <gmd:formatVersion>Unknown Format Version</gmd:formatVersion>
      <gmd:graphicOverview>
        <gmd:MD_BrowseGraphic>
          <gmd:fileName>webservice_catalog_services2.jpeg</gmd:fileName>
          <gmd:fileDescription>medium_thumbnail</gmd:fileDescription>
          <gmd:fileType>jpeg</gmd:fileType>
        </gmd:MD_BrowseGraphic>
      </gmd:graphicOverview>
      <gmd:hierarchyLevelName>UTI</gmd:hierarchyLevelName>
      <gmd:fileIdentifier>210553_L400_S0005K_00000000_00002b2b-26c0-4aa1-a444-c7e1eee8dddd</gmd:fileIdentifier>
      <gmd:language>eng</gmd:language>
      <gmd:lineage>
        <gmd:LI_Lineage>
          <gmd:statement>No statement</gmd:statement>
          <gmd:processStep>
            <gmd:LI_ProcessStep>
              <gmd:description>The data was downloaded from TNRIS</gmd:description>
              <gmd:rationale>No rationale</gmd:rationale>
              <gmd:dateTime>
                <gco:DateTime>1999-01-01T00:00:00.000-08:00</gco:DateTime>
              </gmd:dateTime>
              <gmd:processor>
                <gmd:CI_ResponsibleParty>
                  <gmd:individualName>No individualName</gmd:individualName>
                  <gmd:organisationName>Oracle Spatial and Graph Labs</gmd:organisationName>
                  <gmd:positionName>Manager</gmd:positionName>
                  <gmd:contactInfo>
                    <gmd:CI_Contact>
                      <gmd:phone>
                        <gmd:CI_Telephone>
                          <csw:voice>603-897-7777</csw:voice>
                          <csw:facsimile>603-897-5555</csw:facsimile>
                        </gmd:CI_Telephone>
                      </gmd:phone>
                      <gmd:address>
                        <gmd:CI_Address>
                          <gmd:deliveryPoint>ABC03 3330</gmd:deliveryPoint>
                          <gmd:deliveryPoint>3 Oracle Drive</gmd:deliveryPoint>
                          <gmd:city>Nashua</gmd:city>
                          <gmd:administrativeArea>NH</gmd:administrativeArea>
                          <gmd:postalCode>03062-0003</gmd:postalCode>
                          <gmd:country>USA</gmd:country>
                          <gmd:electronicMailAddress>qingyun.xie@oracle.com</gmd:electronicMailAddress>
                        </gmd:CI_Address>
                      </gmd:address>
                      <gmd:hoursOfService>8AM - 7PM Eastern Time</gmd:hoursOfService>
                      <gmd:contactInstructions>No contactInstructions</gmd:contactInstructions>
                    </gmd:CI_Contact>
                  </gmd:contactInfo>
                  <gmd:role>
                    <gmd:CI_RoleCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" codeListValue="processor" codeSpace="No value">processor</gmd:CI_RoleCode>
                  </gmd:role>
                </gmd:CI_ResponsibleParty>
              </gmd:processor>
            </gmd:LI_ProcessStep>
          </gmd:processStep>
        </gmd:LI_Lineage>
      </gmd:lineage>
      <gmd:metadataCharacterSet>utf8</gmd:metadataCharacterSet>
      <gmd:metadataStandardName>ISO19139</gmd:metadataStandardName>
      <gmd:metadataStandardVersion>2003/Cor.1:2006</gmd:metadataStandardVersion>
      <gmd:modified>2015-10-21</gmd:modified>
      <gmd:onlineResource>http://www.oracle.com/oraclespatial/mycsw2/</gmd:onlineResource>
      <gmd:parentIdentifier>CSW-WEB-SERVICES</gmd:parentIdentifier>
      <gmd:resourceIdentifier>Downloadable Data</gmd:resourceIdentifier>
      <gmd:resourceIdentifier>urn:de.pangaea:project:IODP</gmd:resourceIdentifier>
      <gmd:resourceIdentifier>urn:org.iodp:exp:302</gmd:resourceIdentifier>
      <gmd:resourceIdentifier>urn:org.iodp:exp:302:site:M0001</gmd:resourceIdentifier>
      <gmd:resourceIdentifier>urn:org.iodp:exp:302:site:M0001:hole:A</gmd:resourceIdentifier>
      <gmd:resourceLanguage>eng; USA</gmd:resourceLanguage>
      <gmd:referenceSystem>
        <gmd:code> urn:ogc:def:crs:EPSG:4957</gmd:code>
        <gmd:codeSpace>No codeSpace value for ReferenceSystem</gmd:codeSpace>
        <gmd:version>6.18.3</gmd:version>
      </gmd:referenceSystem>
      <gmd:revisionDate>2015-11-23T14:44:00</gmd:revisionDate>
      <gmd:rights>license</gmd:rights>
      <gmd:spatialResolution>
        <gmd:denominator>60000</gmd:denominator>
      </gmd:spatialResolution>
      <gmd:spatialResolution uom="http://standards.iso.org/ittf2/PubliclyAvailableStandards/ISO_19139_Schemas/resources/uom/gmxUom.xml#m">
        <gmd:distance>2.8</gmd:distance>
      </gmd:spatialResolution>
      <gmd:spatialRepresentationType>vector</gmd:spatialRepresentationType>
      <gmd:title>European Petroleum Survey Group (EPSG) Geodetic Parameter Registry</gmd:title>
      <gmd:title>Oracle CSW 2.0.2 Service Record</gmd:title>
      <gmd:topicCategory>planningCadastre</gmd:topicCategory>
      <gmd:type>dataset</gmd:type>
    </csw:SummaryRecordISO>
  </csw:SearchResults>
</csw:GetRecordsResponse>

例18-21 PropertyIsGreaterThanを使用したGetRecordsリクエスト

PropertyIsGreaterThanを使用したGetRecordsのリクエストを次に示します。ここでは、クライアントは、日付が2004-01-01より後のレコードをフェッチします。

<csw:GetRecords 
                xmlns:apiso="http://www.opengis.net/cat/csw/apiso/1.0"
                xmlns:gmd="http://www.isotc211.org/2005/gmd"
                xmlns:srv="http://www.isotc211.org/2005/srv"
                xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
                xmlns:dc="http://purl.org/dc/elements/1.1/"
                xmlns:dct="http://purl.org/dc/terms/"
                xmlns:gml="http://www.opengis.net/gml"
                xmlns:ogc="http://www.opengis.net/ogc"
                xmlns:ows="http://www.opengis.net/ows"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                xmlns:xlink="http://www.w3.org/1999/xlink"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                resultType="results"
                service="CSW"
                version="2.0.2">
   <csw:Query typeNames="gmd:MD_Metadata">
      <csw:ElementName>apiso:identifier</csw:ElementName>
      <csw:ElementName>apiso:type</csw:ElementName>
      <csw:ElementName>apiso:modified</csw:ElementName>
      <csw:Constraint version="1.1.0">
         <ogc:Filter>
            <ogc:PropertyIsGreaterThan>
               <ogc:PropertyName>apiso:modified</ogc:PropertyName>
               <ogc:Literal>2004-01-01Z</ogc:Literal>
            </ogc:PropertyIsGreaterThan>
         </ogc:Filter>
      </csw:Constraint>
   </csw:Query>
</csw:GetRecords>

例18-22 PropertyIsGreaterThanを使用したGetRecordsのレスポンス

前述のリクエストに対するレスポンスは、次のとおりです。

<csw:GetRecordsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:srv="http://www.isotc211.org/2005/srv" xmlns:dct="http://purl.org/dc/terms/" xmlns:ns7="http://www.opengis.net/ows/2.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:ows="http://www.opengis.net/ows" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:gco="http://www.isotc211.org/2005/gco" version="2.0.2" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 ../../cswAll.xsd">
  <csw:SearchStatus timestamp="2017-06-06T06:34:22Z"></csw:SearchStatus>
  <csw:SearchResults elementSet="" recordSchema="http://www.isotc211.org/2005/gmd" numberOfRecordsMatched="2" numberOfRecordsReturned="2" nextRecord="0">
    <csw:RecordISO>
      <gmd:fileIdentifier>210553_L400_S0005K_00000000_00002b2b-26c0-4aa1-a444-c7e1eee8cccc</gmd:fileIdentifier>
      <gmd:modified>2015-10-22</gmd:modified>
      <gmd:type>dataset</gmd:type>
    </csw:RecordISO>
    <csw:RecordISO>
      <gmd:fileIdentifier>210553_L400_S0005K_00000000_00002b2b-26c0-4aa1-a444-c7e1eee8dddd</gmd:fileIdentifier>
      <gmd:modified>2015-10-21</gmd:modified>
      <gmd:type>dataset</gmd:type>
    </csw:RecordISO>
  </csw:SearchResults>
</csw:GetRecordsResponse>

例18-23 BoundingBox (BBOX)を使用したGetRecordsリクエスト

BoundingBox (BBOX)を使用したGetRecordsのリクエストを次に示します。ここでは、クライアントは、ジオメトリが(60,12;70, 20)という境界ボックスに該当するレコードをフェッチします。このリクエストでは、空間索引とXQFT索引の両方が活用されます。

csw:GetRecords 
                xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
                xmlns:apiso="http://www.opengis.net/cat/csw/apiso/1.0"
                xmlns:gmd="http://www.isotc211.org/2005/gmd"
                xmlns:srv="http://www.isotc211.org/2005/srv"
                xmlns:dc="http://purl.org/dc/elements/1.1/"
                xmlns:dct="http://purl.org/dc/terms/"
                xmlns:gml="http://www.opengis.net/gml"
                xmlns:ogc="http://www.opengis.net/ogc"
                xmlns:ows="http://www.opengis.net/ows"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                xmlns:xlink="http://www.w3.org/1999/xlink"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                maxRecords="0"
                resultType="results"
                service="CSW"
                version="2.0.2">
   <csw:Query typeNames="gmd:MD_Metadata">
      <csw:ElementName>apiso:identifier</csw:ElementName>
      <csw:ElementName>ows:BoundingBox</csw:ElementName>
      <csw:Constraint version="1.1.0">
         <ogc:Filter>
            <ogc:Not>
               <ogc:BBOX>
                  <ogc:PropertyName>ows:BoundingBox</ogc:PropertyName>
                  <gml:Envelope srsName="urn:x-ogc:def:crs:EPSG:6.11:4326">
                     <gml:lowerCorner>60.0 12.0</gml:lowerCorner>
                     <gml:upperCorner>70.0 20.0</gml:upperCorner>
                  </gml:Envelope>
               </ogc:BBOX>
            </ogc:Not>
         </ogc:Filter>
      </csw:Constraint>
   </csw:Query>
</csw:GetRecords>

例18-24 BoundingBox (BBOX)を使用したGetRecordsのレスポンス

前述のリクエストに対するレスポンスは、次のとおりです。

<csw:GetRecordsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:srv="http://www.isotc211.org/2005/srv" xmlns:dct="http://purl.org/dc/terms/" xmlns:ns7="http://www.opengis.net/ows/2.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:ows="http://www.opengis.net/ows" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:gco="http://www.isotc211.org/2005/gco" version="2.0.2" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 ../../cswAll.xsd">
  <csw:SearchStatus timestamp="2017-08-16T09:46:09Z"></csw:SearchStatus>
  <csw:SearchResults elementSet="" recordSchema="http://www.isotc211.org/2005/gmd" numberOfRecordsMatched="1" numberOfRecordsReturned="1" nextRecord="0">
    <csw:RecordISO>
      <gmd:EX_GeographicBoundingBox dimensions="2">
        <gmd:WestBoundLongitude>-109.047013285</gmd:WestBoundLongitude>
        <gmd:SouthBoundLatitude>34.2585812994</gmd:SouthBoundLatitude>
        <gmd:EastBoundLongitude>-106.876969333</gmd:EastBoundLongitude>
        <gmd:NorthBoundLatitude>37.0002329277</gmd:NorthBoundLatitude>
      </gmd:EX_GeographicBoundingBox>
      <gmd:fileIdentifier>210553_L400_S0005K_00000000_00002b2b-26c0-4aa1-a444-c7e1eee8cccc</gmd:fileIdentifier>
    </csw:RecordISO>
  </csw:SearchResults>
</csw:GetRecordsResponse>

18.7 CSW管理コンソール

Oracle Spatial Webサービス管理コンソールには、CSWの管理画面が含まれます。

管理コンソール・ページを使用するには、すべての使用可能なデータ・ソース名のリストからCSWデータ・ソースを選択します。(現在選択されているデータ・ソースは右上隅に表示されますが、いつでもそこで変更できます。)

次の形式のURLに移動すると、CSW管理コンソールにアクセスできます。

http://<system-name>:<port>/oraclespatial/

CSW管理コンソールには、構成、テストおよび問題の診断を行うための画面が用意されています。このリージョンには次のタブがあります。

  • 構成ファイル

    「構成ファイル」タブでは、CSWConfig.xmlファイルを編集および更新できます。

  • テスト

    「テスト」タブでは、getCapabilitiesdescribeRecordgetRecordsおよびgetRecordByID操作を生成および起動し、CSWサービスおよびカタログ・データのテストおよび問合せを行えます。空間制約および非空間制約に基づいて問合せ文を編集できます。

  • ログ

    「ログ」タブには、CSW操作の処理中に発生したエラーが示され、問題があるかどうかを診断できます。

18.8 CSWの問題の診断

CSWログ・ファイルには診断情報が含まれています。

CSW管理コンソールで「ログ」タブを使用してCSWログ・ファイルを表示およびダウンロードできます。

このトピックでは、いくつかのタイプのエラー・メッセージとその対処方法について説明します。

"DataSource jdbc/csw_admin_ds not found" — GetCapabilitiesレスポンス・エラー・メッセージ

次のようなレスポンスです(読みやすくするために再フォーマットしています)。

<?xml version='1.0' encoding='UTF-8'?>
<ows:ExceptionReport
  xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.opengis.net/ows/2.0 http://schemas.opengis.net/ows/2.0/owsExceptionReport.xsd" version="2.0.1">
  <ows:Exception exceptionCode="NoApplicableCode" locator="DataSource jdbc/csw_admin_ds not found"/>
</ows:ExceptionReport>

これは、CSWデータ・ソースが構成されていないか、WebLogic Serverがデータベースに接続できないということです。CSWデータ・ソースの構成の詳細は、「CSWエンジンの構成とデプロイ」「CSWデータ・ソースの設定」を参照してください。

MDSYS.SDO_XSD_TABLEが存在しないか、指定したXSD IDが正しくない

これは、XMLスキーマが見つからなかったということです。Oracle Spatialが適切にインストールされていることを確認し、SDO_XSD_TABLE表およびUSER_SDO_CSW_SERVICE_INFOビューのXSD_ID列を確認します。

CSWカタログ表の問題

Catalog Services for the Webのカタログ表、SRIDパラメータ、メタデータIDおよびXMLスキーマ定義(XSD)タイプが正しく指定されていることを確認します。

CSWカタログ表に対してXQFT索引を削除または作成できない

Catalog Services for the Webカタログ表に対してXQuery Full Text (XQFT)索引を削除または作成できませんでした。CSWカタログ表にXQFT索引の削除または構築の準備が整っていることを確認します。

Catalog Services for the Web (CSW)のサーバー側エラーが発生

CSWメタデータが正しく、CSWカタログ表が適切に定義されていることを確認します。

Catalog Services for the Web (CSW)のクライアント側エラーが発生

CSWレコード・タイプが適切にパブリッシュされていること、およびsdows.earファイルとWebLogic Server (WLS)が適切に構成されていることを確認します。

データベース接続エラー

CSWログ内の次のメッセージは、データベースが稼働していないことを示しています。

SEVERE: Error discovering coverages 
java.sql.SQLRecoverableException: No more data to read from socket

CSW管理コンソールの「ログ」タブの"Error reading log file"メッセージ

認証されたユーザーがCSWサーバー管理コンソールと一定時間対話しないと、ブラウザのユーザー・セッションがタイムアウトすることがあります。この場合、ブラウザの表示をリフレッシュし、再認証を受けて新しいセッションを取得します。

受信したドキュメントがプロトコル構文に準拠していない

次のようなエラー・メッセージは、OGC仕様に定義されていないXML要素または文字要素がリクエストに含まれていることを示しています。

<?xml version='1.0' encoding='UTF-8'?>
<ows:ExceptionReport xmlns:ows="http://www.opengis.net/ows/2.0" version="2.0.2" language="">
  <ows:Exception exceptionCode="InvalidEncodingSyntax" locator="request">
    <ows:ExceptionText>Document received does not conform with protocol syntax.</ows:ExceptionText>
  </ows:Exception>
</ows:ExceptionReport>