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には、この目的で$ORACLE_HOME/md/jlib/sdocswloader.jarというクライアント側ローダーが用意されています(デフォルトのSpatialインストール・ディレクトリが$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カタログ・サービスでは、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カタログ・サービスでは、TypeNameパラメータに使用できるのはcsw:Recordのみです。

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

schemaLanguageパラメータを使用して、指定したタイプの記述に使用するスキーマ言語を指定します。デフォルト値はXMLSCHEMAで、XML-Schemaスキーマ記述言語を使用することを示します。Oracle Spatialカタログ・サービスでは、リクエストにこのパラメータに対する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カタログ・サービスでは、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 CSWサービスの場合、ConstraintLanguageパラメータはFilterである必要があります。CQLはサポートされていません。

constraintパラメータは、特定のレコードの取得に使用するフィルタ機能を指定します。次のフィルタ機能がOracle Spatial 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カタログ・サービスでは、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カタログ・サービスでは、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 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>