Open Archives Initiativeメタデータハーベスティングプロトコル実装ガイドライン

OAI logo

OAI静的リポジトリおよびOAI静的リポジトリゲートウェイ仕様書

  プロトコルバージョン 2.0 (2002-06-14)
ドキュメントバージョン 2004/04/23T15:17:00Z
http://www.openarchives.org/OAI/2.0/guidelines-static-repository.htm

編者

OAI役員:
Herbert Van de Sompel <herbertv@lanl.gov> -- ロスアラモス国立研究所 - 研究図書館
Carl Lagoze <lagoze@cs.cornell.edu> -- コーネル大学 - コンピュータ情報科学

OAI技術委員会委員:
Michael Nelson <mln@cs.odu.edu> -- オールドドミニオン大学 - コンピュータサイエンス学科
Simeon Warner <simeon@cs.cornell.edu> -- コーネル大学 - コンピュータ情報科学

貢献者:
Patrick Hochstenbach <hochsten@lanl.gov> -- ロスアラモス国立研究所 - 研究図書館
Henry Jerez <hjerez@lanl.gov> -- ロスアラモス国立研究所 - 研究図書館

本ドキュメントは Open Archives Initiative メタデータハーベスティングプロトコル (OAI-PMH) の付録 「実装ガイドライン」 の一部です。

目次

1. はじめに
2. 概念と定義
3. 静的リポジトリに関する記述
   3.1 静的リポジトリの概要
   3.2 静的リポジトリ適合規則
   3.3 静的リポジトリゲートウェイによる中継開始
   3.4 静的リポジトリゲートウェイによる中継終了
   3.5 静的リポジトリの稼動確認アクセス
   3.6 静的リポジトリの例
4. 静的リポジトリゲートウェイに関する記述
   4.1 静的リポジトリの中継開始
   4.2 静的リポジトリの中継終了
      4.2.1 リクエストによる中継終了
      4.2.2 一方的な中継終了
   4.3 静的リポジトリの中継処理
   4.4 静的リポジトリゲートウェイに対するOAI-PMHに関する補足的問題
      4.4.1 静的リポジトリゲートウェイにより返される OAI-PMH Identify レスポンスの内容
      4.4.2 静的リポジトリゲートウェイのフローコントロール
   4.5 セキュリティについて
A1. XMLスキーマ
   A1.1 静的リポジトリXMLスキーマ
   A1.2 制限付きOAI-PMH XMLスキーマ
謝辞
ドキュメント履歴

1. はじめに

本ドキュメントを理解するためにはOAI-PMH の知識が必要です。

ここで紹介する静的リポジトリは比較的変更が少ない小規模のメタレコードコレクションを OAI-PMH により公開する簡単な方法を提供します。静的リポジトリは 以下のような組織を対象としています。

静的リポジトリは永続的なHTTP URLでアクセス可能なXMLファイルです。XMLファイルはメタデータレコードとリポジトリ情報を持ちます。

静的リポジトリは中継者となる1つの静的リポジトリゲートウェイを介してOAI-PMHでアクセス可能になります。各静的リポジトリの中継者を1つの 静的リポジトリゲートウェイに制限するのは、複数のゲートウェイが1つのリポジトリを中継した場合に考えられるメタデータレコードの重複を減少させるためです。 静的リポジトリゲートウェイはXMLの形で提供される静的リポジトリのメタデータレコードとリポジトリ情報を使って、その情報にアクセスする6つのOAI-PMHリクエストを 処理します。静的リポジトリゲートウェイは各静的リポジトリに固有の静的リポジトリベースURLを割り当てるので、ハーベスターは他の OAI-PMHリポジトリとまったく同じ方法で静的リポジトリにアクセスできます

静的リポジトリと静的リポジトリゲートウェイおよびハーベスタの関係を下の図に示しました。静的リポジトリと静的リポジトリゲートウェイについては これから説明します。静的リポジトリのみに関心のある方は静的リポジトリゲートウェイについて説明した4章はとばしても構いません。

静的リポジトリと静的リポジトリゲートウェイおよびOAI-PMHハーベスタ
Repository-gateway relationship figure

2. 概念と定義

本仕様を理解するために基本となる概念は次の通りです。

静的リポジトリ: 静的リポジトリとは、ある永続的なHTTP URLをアクセスポイントとする3.2節で述べる適合規則に従う1つのXMLファイルです。 静的リポジトリはメタデータレコードとリポジトリ情報を持ちます。リポジトリ情報はメタデータを静的リポジトリゲートウェイを介してOAI-PMHにより収集するために必要となります。 静的リポジトリはOAI-PMHリポジトリではありません。なぜなら、静的リポジトリは ファイルであり、6つのOAI-PMHリクエストを処理できるサーバではないから です。

静的リポジトリURL: 静的リポジトリのアクセスポイントとなるHTTP URLです。

静的リポジトリゲートウェイ: 静的リポジトリゲートウェイは、1つ以上の静的リポジトリに中継機能を提供します。静的リポジトリゲートウェイは、各静的リポジトリに 固有の静的リポジトリベースURLを割り当てます。このベースURLの接頭辞にはすべて、共通の静的リポジトリゲートウェイURLが 付きます。このベースURLにより各静的リポジトリは別個のOAI-PMHリポジトリと して公開されます

静的リポジトリゲートウェイURL: 静的リポジトリゲートウェイのHTTP URLです。ゲートウェイが中継するすべての静的リポジトリのベースURLに 共通の接頭辞となります。

中継: 静的リポジトリゲートウェイと1つ以上の静的リポジトリの関係であり、静的リポジトリゲートウェイが配下の静的リポジトリへのOAI-PMHアクセスを可能とするものです。この中継はハーベスタには隠されています。つまり、実際は静的リポジトリゲートウェイで処理されるのですが、ハーベスタはOAI-PMHリクエストを目的とする静的リポジトリを表す静的リポジトリベースURLに送ることになります。

静的リポジトリベースURL: 静的リポジトリのコンテンツを静的リポジトリゲートウェイによる中継を介してOAI-PMHでアクセスするための ベースURLです。この静的リポジトリベースURLは以下の要素をつなげたものです。

たとえば、http://gateway.institution.org/oaiにある静的リポジトリゲートウェイを中継者とする http://an.oai.org/ma/mini.xml の静的リポジトリへのOAI-PMHリクエストは次の静的リポジトリベースURLに対して 発行しなければなりません。

    http://gateway.institution.org/oai/an.oai.org/ma/mini.xml

3. 静的リポジトリに関する記述

3.1 静的リポジトリの概要

静的リポジトリは小規模で比較的変更の少ないメタデータコレクションに向いています。メタデータと識別子、日付スタンプはすべて1つのXMLファイルで管理されます。 このXMLファイルは3.2節で述べる適合規則に従わなければなりません。このXMLファイルはXML編集ツールやテキスト編集ソフトを使って 手書きで作成することもできますし、既存のデータベースから情報を抽出するプログラムを書いて定期的に作成することもできるでしょう。

静的リポジトリは、唯一つの静的リポジトリURLによってのみアクセスされるものでなければなりません。これは次のような形をした HTTP URLでなければなりません

    http://host:port/path/file

HTTP URLには余分な断片やクエリ文字列を含んでいてはいけません。静的リポジトリの内容は、メタデータレコードと 静的リポジトリゲートウェイによる中継に必要なリポジトリ情報です。静的リポジトリには標準的なOAI-PMHリポジトリに比べて 多くの制約があります。静的リポジトリは、セット削除レコード応答圧縮YYYY-MM-DD以外の 日付単位、および resumptionTokensをサポートしません。

3.2 静的リポジトリ適合規則

静的リポジトリは以下の適合規則に従わなければなりません

静的リポジトリのメタデータレコードに使用する識別子はRFC1737で示されている要件を満たすために OAI識別子ガイドラインあるいはその他のURN(Uniform Resource Names)の形式に 従うことを強く推奨します。そうすれば収集したメタデータレコードの重複を簡単に見つけることができるようになります。

3.3 静的リポジトリゲートウェイによる中継開始

静的リポジトリに対するOAI-PMHアクセスは静的リポジトリゲートウェイによる中継を介してのみ可能です。この中継を開始するために静的リポジトリの管理者はまず 中継者として作動する静的リポジトリゲートウェイを1つ選択しなければなりません。そして、次の形式のHTTP GETリクエストを発行しなければなりません

    <静的リポジトリゲートウェイURL>?initiate=<静的リポジトリURL>

たとえば、 静的リポジトリURLhttp://an.oai.org/ma/mini.xmlの静的リポジトリの管理者が、 静的リポジトリゲートウェイURLhttp://gateway.institution.org/oaiの静的リポジトリゲートウェイに中継を要求する場合は、 次のHTTP GETリクエストを発行しなければなりません。:

    http://gateway.institution.org/oai?initiate=http://an.oai.org/ma/mini.xml

中継開始にこれ以外の処理が必要かどうか、また、このリクエストが発行されてから実際に静的リポジトリゲートウェイによる中継が始まるまでの時間は、ゲートウェイの 運営方針や実装によります。たとえば、静的リポジトリゲートウェイは、ゲートウェイ管理者を介して中継を開始する前に電子メールを交換する必要があるという方針を持つことが できます。静的リポジトリゲートウェイの管理者は静的リポジトリの稼動確認アクセスに関する指示に従い、中継開始の試みが成功するか否かをチェックするべきです。

3.4 静的リポジトリゲートウェイによる中継終了

静的リポジトリゲートウェイによる中継を終了させるには、静的リポジトリの管理者はまず静的リポジトリURLから静的リポジトリを削除するか、 baseURL要素を変更して、静的リポジトリベースURLと一致しないようにします。次に管理者は次のHTTP GETリクエストを 発行しなければなりません

    <静的リポジトリゲートウェイURL>?terminate=<静的リポジトリURL>

たとえば、 静的リポジトリURLhttp://an.oai.org/ma/mini.xmlの静的リポジトリの管理者が、 静的リポジトリゲートウェイURLhttp://gateway.institution.org/oaiの静的リポジトリゲートウェイによる中継の終了を要求する場合は、 次のHTTP GETリクエストを発行しなければなりません。:

    http://gateway.institution.org/oai?terminate=http://an.oai.org/ma/mini.xml

静的リポジトリゲートウェイは以下の規則に従って終了リクエストに応答します。

中継終了にこれ以外の処理が必要かどうか、また、このリクエストが発行されてから実際に中継が終了するまでの時間は、静的リポジトリゲートウェイの 運営方針や実装によります。静的リポジトリゲートウェイの管理者は静的リポジトリの稼動確認アクセスに関する指示に従い、中継終了の試みが成功するか否かをチェックするべきです。

3.5 静的リポジトリの稼動確認アクセス

静的リポジトリの管理者はリポジトリへのアクセスが1つの静的リポジトリゲートウェイの中継に依存していることを承知しているべきです静的リポジトリ適合規則は、静的リポジトリのbaseURL要素と、静的リポジトリゲートウェイの中継によって利用可能となる 静的リポジトリベースURLとが一致することを要求することにより、2つ以上の静的リポジトリゲートウェイによる中継を禁止しています。

管理者は次のタイミングでしかるべき静的リポジトリベースURLに対しOAI-PMHのIdentifyリクエストを発行して中継が正常に行われているか否かをチェックすることを推奨します

このIdentifyリクエストに対するレスポンスは以下のいずれかになります。

3.6 静的リポジトリの例

以下に静的リポジトリの例を示しました。ご覧の通り、この例は次の要素を含んでいます。

静的リポジトリの例
<?xml version="1.0" encoding="UTF-8"?>
<Repository xmlns="http://www.openarchives.org/OAI/2.0/static-repository" 
            xmlns:oai="http://www.openarchives.org/OAI/2.0/" 
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
            xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/static-repository 
                                http://www.openarchives.org/OAI/2.0/static-repository.xsd">
  <Identify>
    <oai:repositoryName>Demo repository</oai:repositoryName>
    <oai:baseURL>http://gateway.institution.org/oai/an.oai.org/ma/mini.xml</oai:baseURL>
    <oai:protocolVersion>2.0</oai:protocolVersion>
    <oai:adminEmail>jondoe@oai.org</oai:adminEmail>
    <oai:earliestDatestamp>2002-09-19</oai:earliestDatestamp>
    <oai:deletedRecord>no</oai:deletedRecord>
    <oai:granularity>YYYY-MM-DD</oai:granularity>
  </Identify>
  <ListMetadataFormats>
    <oai:metadataFormat>
      <oai:metadataPrefix>oai_dc</oai:metadataPrefix>
      <oai:schema>http://www.openarchives.org/OAI/2.0/oai_dc.xsd</oai:schema>
      <oai:metadataNamespace>http://www.openarchives.org/OAI/2.0/oai_dc/</oai:metadataNamespace>
    </oai:metadataFormat>
    <oai:metadataFormat>
      <oai:metadataPrefix>oai_rfc1807</oai:metadataPrefix>
      <oai:schema>http://www.openarchives.org/OAI/1.1/rfc1807.xsd</oai:schema>
      <oai:metadataNamespace>http://info.internet.isi.edu:80/in-notes/rfc/files/rfc1807.txt</oai:metadataNamespace>
    </oai:metadataFormat>
  </ListMetadataFormats>
  <ListRecords metadataPrefix="oai_dc">
    <oai:record> 
      <oai:header>
        <oai:identifier>oai:arXiv:cs/0112017</oai:identifier> 
        <oai:datestamp>2001-12-14</oai:datestamp>
      </oai:header>
      <oai:metadata>
        <oai_dc:dc 
            xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" 
            xmlns:dc="http://purl.org/dc/elements/1.1/" 
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
            xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ 
                                http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
          <dc:title>Using Structural Metadata to Localize Experience of 
                    Digital Content</dc:title> 
          <dc:creator>Dushay, Naomi</dc:creator>
          <dc:subject>Digital Libraries</dc:subject> 
          <dc:description>With the increasing technical sophistication of 
            both information consumers and providers, there is 
            increasing demand for more meaningful experiences of digital 
            information. We present a framework that separates digital 
            object experience, or rendering, from digital object storage 
            and manipulation, so the rendering can be tailored to 
            particular communities of users.
          </dc:description> 
          <dc:description>Comment: 23 pages including 2 appendices, 
            8 figures</dc:description> 
          <dc:date>2001-12-14</dc:date>
        </oai_dc:dc>
      </oai:metadata>
    </oai:record>  
    <oai:record>
      <oai:header>
        <oai:identifier>oai:perseus:Perseus:text:1999.02.0084</oai:identifier>
        <oai:datestamp>2002-05-01</oai:datestamp>
      </oai:header>
      <oai:metadata>
        <oai_dc:dc 
            xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" 
            xmlns:dc="http://purl.org/dc/elements/1.1/" 
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
            xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ 
                                http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
          <dc:title>Germany and its Tribes</dc:title>
          <dc:creator>Tacitus</dc:creator>
          <dc:type>text</dc:type>
          <dc:source>Complete Works of Tacitus. Tacitus. Alfred John Church. 
            William Jackson Brodribb. Lisa Cerrato. edited for Perseus. 
            New York: Random House, Inc. Random House, Inc. reprinted 1942.
          </dc:source>
          <dc:identifier>http://www.perseus.tufts.edu/cgi-bin/ptext?
            doc=Perseus:text:1999.02.0083</dc:identifier>
        </oai_dc:dc>
      </oai:metadata>
    </oai:record>
  </ListRecords>
  <ListRecords metadataPrefix="oai_rfc1807">
    <oai:record>
      <oai:header>
        <oai:identifier>oai:arXiv:cs/0112017</oai:identifier>
        <oai:datestamp>2001-12-14</oai:datestamp>
      </oai:header>
      <oai:metadata>
        <rfc1807 
            xmlns="http://info.internet.isi.edu:80/in-notes/rfc/files/rfc1807.txt" 
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
            xsi:schemaLocation="http://info.internet.isi.edu:80/in-notes/rfc/files/rfc1807.txt
                                http://www.openarchives.org/OAI/1.1/rfc1807.xsd">
          <bib-version>v2</bib-version>
          <id>cs/0112017</id>
          <entry>December 23, 2001</entry>
          <title>Using Structural Metadata to Localize Experience of 
             Digital Content</title>
          <author>Naomi Dushay</author>
          <date>December 14, 2001</date>
        </rfc1807>
      </oai:metadata>
      <oai:about>
        <oai_dc:dc 
            xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" 
            xmlns:dc="http://purl.org/dc/elements/1.1/" 
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
            xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ 
                                http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
          <dc:publisher>Los Alamos arXiv</dc:publisher>
          <dc:rights>Metadata may be used without restrictions as long as 
            the oai identifier remains attached to it.</dc:rights>
        </oai_dc:dc>
      </oai:about>
    </oai:record>
  </ListRecords>
</Repository>

4. 静的リポジトリゲートウェイに関する記述

注: 静的リポジトリにしか関心のない方はこの章をとばしても構いません。

静的リポジトリゲートウェイは1つ以上の静的リポジトリに中継機能を提供します。ゲートウェイが中継する各静的リポジトリの OAI-PMH ベースURLは一意ですが、共通の接頭辞として 静的リポジトリゲートウェイURLを持ちます。メタデータレコードの過度の重複を防ぐために、静的リポジトリゲートウェイは OAI-PMHリクエストに含まれている 静的リポジトリベースURLが目的の静的リポジトリのbaseURL要素の値と一致しない場合は、そのリクエストを処理してはいけません。静的リポジトリゲートウェイは静的リポジトリにあるメタデータを変更してはいけません。下流のサービスとしてメタデータの 変更、補強、クロスウォークが考えられますが、静的リポジトリゲートウェイの目的は 静的リポジトリを中継することだけです。

静的リポジトリゲートウェイの実装には3つの側面があります。

  1. 静的リポジトリの中継開始
  2. 静的リポジトリの中継処理
  3. 静的リポジトリの中継終了

4.1 静的リポジトリの中継開始

本ドキュメントの3.3節では静的リポジトリの管理者がどのようにして単一の静的リポジトリゲートウェイによる中継を開始するかを記述しています。 本節では静的リポジトリゲートウェイ側からこの過程を記述します。

静的リポジトリゲートウェイは次の形のHTTP GETリクエストを処理しなければなりません

    <静的リポジトリゲートウェイURL>?initiate=<静的リポジトリURL>

静的リポジトリゲートウェイはこのリクエストを受けてから実際に中継者として作動するまでの間に、任意の運営方針や処理を実装することができます。この処理には OAI-PMHでは対象外のユーザの認証と承認のような付加的な処理が考えられます。

4.2 静的リポジトリの中継終了

静的リポジトリの中継は、静的リポジトリ管理者からのリクエストにより、あるいは、静的リポジトリゲートウェイにより一方的に終了することができます

4.2.1 リクエストによる中継終了

本ドキュメントの3.4節では静的リポジトリの管理者がどのようにして単一の静的リポジトリゲートウェイによる中継を終了するかを記述しています。 本節では静的リポジトリゲートウェイ側からこの過程を記述します。

静的リポジトリゲートウェイは次の形のHTTP GETリクエストを処理しなければなりません

    <静的リポジトリゲートウェイURL>?terminate=<静的リポジトリURL>

このようなリクエストを受けたら、静的リポジトリゲートウェイは静的リポジトリを読み込んで、次の規則に従わなければなりません

終了に関しては静的リポジトリの管理者に電子メールで通知する(アドレスは静的リポジトリのadminEmail要素から知ることができます)ことを推奨します

4.2.2 一方的な中継の終了

静的リポジトリゲートウェイはいつでも中継を一方的に終了することができます。この終了の理由としては以下のようなものがあげられます。

終了に関しては静的リポジトリの管理者に電子メールで通知する(アドレスは静的リポジトリのadminEmail要素から知ることができます)ことを推奨します

4.3 静的リポジトリの中継処理

静的リポジトリゲートウェイは、いったん静的リポジトリの中継を受け付けたら、中継関係にある間は静的リポジトリベースURLに向けられた6つの OAI-PMHリクエストすべてに応答しなければなりません

公開するメタデータの正確さを保証するために静的リポジトリゲートウェイは最新版の静的リポジトリを使用しなければなりません。静的リポジトリゲートウェイは OAI-PMHリクエストを受付けるたびにHTTP GETリクエストを発行して、永続的な静的リポジトリURLから静的リポジトリを取り込むことでこれを 実行することができます。あるいは、静的リポジトリゲートウェイは静的リポジトリをキャッシュすることにより実行性能を最適化することもできます。後者の場合、 静的リポジトリゲートウェイはOAI-PMHリクエストに応答する前に毎回静的リポジトリURLの版次とキャッシュした静的リポジトリの版次を比べることにより 最新性のテストを行わなければなりません。このテストはキャッシュ版の静的リポジトリの日付を設定したIf-Modified-Sinceヘッダを付けたHTTP GETリクエストを 使用して行うべきです

静的リポジトリベースURLへのOAI-PMHリクエストに対する静的リポジトリゲートウェイのレスポンスは以下のいずれかの形を取らなけらばなりません

4.4 静的リポジトリゲートウェイに対するOAI−PMHに関する補足的問題

静的リポジトリゲートウェイによるOAI-PMHの処理はOAI-PMH仕様書により規定されています。 この節ではこの仕様に関連するいくつかの問題について記述します。

4.4.1 静的リポジトリゲートウェイにより返されるOAI-PMH Identifyレスポンスの内容

静的リポジトリゲートウェイが中継する各静的リポジトリに対するIdetifyレスポンスにはgateway 記述を含めなければなりません。この記述はOAI-PMHレスポンスが静的リポジトリゲートウェイにより返されたことを明らかにします。 gateway 記述は以下の要素を含まなければなりません

gateway 記述には、以下を含めることもできます

静的リポジトリが動的に発見されるように、静的リポジトリゲートウェイは中継するすべての静的リポジトリに対するIdentifyレスポンスに friends 記述を含めることができます。この記述を含める場合、 friends 記述は、静的リポジトリゲートウェイを介してハーベスト可能なすべての静的リポジトリの ベースURLのリストでなければなりません。リストにあげた 静的リポジトリの利用(不)可能性を時間をかけて追跡することなどにより、静的リポジトリゲートウェイは friends記述を定期的に更新するための方針を整備することができます

3.6節の例で示した静的リポジトリに対して発行されたIdentifyリクエストに静的リポジトリゲートウェイURLhttp://gateway.institution.org/oaiである静的リポジトリゲートウェイが応答したレスポンスの例を以下に示しました。

静的リポジトリに対して発行されたIdentifyリクエストへのレスポンス
<?xml version="1.0" encoding="UTF-8"?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/
                             http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
  <responseDate>2002-02-08T12:00:01Z</responseDate>
  <request verb="Identify">http://gateway.institution.org/oai/an.oai.org/ma/mini.xml</request>
  <Identify>
    <repositoryName>Demo repository</repositoryName>
    <baseURL>http://gateway.institution.org/oai/an.oai.org/ma/mini.xml</baseURL>
    <protocolVersion>2.0</protocolVersion>
    <adminEmail>jondoe@oai.org</adminEmail>
    <earliestDatestamp>2002-09-19</earliestDatestamp>
    <deletedRecord>no</deletedRecord>
    <granularity>YYYY-MM-DD</granularity>
    <description>
      <friends 
          xmlns="http://www.openarchives.org/OAI/2.0/friends/" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/friends/
                              http://www.openarchives.org/OAI/2.0/friends.xsd">
        <baseURL>http://gateway.institution.org/oai/site1.org/mini/file1</baseURL>
        <baseURL>http://gateway.institution.org/oai/loca.org%3A8080/data</baseURL>
        <baseURL>http://gateway.institution.org/oai/univ.edu/lib/pubs.xml</baseURL>
      </friends>
    </description>
    <description>
      <gateway 
          xmlns="http://www.openarchives.org/OAI/2.0/gateway/" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/gateway/
                              http://www.openarchives.org/OAI/2.0/gateway.xsd">
        <source>http://an.oai.org/ma/mini.xml</source>
        <gatewayDescription>http://www.openarchives.org/OAI/2.0/guidelines-static-repository.htm</gatewayDescription>
        <gatewayAdmin>pat@institution.org</gatewayAdmin>
        <gatewayURL>http://gateway.institution.org/oai/</gatewayURL>
      </gateway>
    </description>
  </Identify>
</OAI-PMH>

4.4.2 静的リポジトリゲートウェイのフローコントロール

他のOAI-PMHリポジトリ同様、静的リポジトリゲートウェイは大きなレスポンスを分割する方法として resumptionTokensを使用することができます。しかしながら、 resumptionTokenを持つハーベスティングリクエストに応答する前に静的リポジトリは静的リポジトリが変更されていないことを保証しなければなりません。 言い換えれば、リストリクエストシークエンスにおける一揃いの リクエストはすべて同一の静的リポジトリコンテンツに対するものでなければなりません。これを保証するために静的リポジトリゲートウェイはリストリクエストシークエンス の各リクエスト毎に最新性のテストを行わなければなりません。静的リポジトリゲートウェイは静的リポジトリに対するリストリクエストシーケンスの最初のリクエストの 日付をIf-Modified-Sinceヘッダに設定したHTTP GETリクエストを使ってこの最新性のテストを行うべきです。最新性のテストの結果、リストリクエスト シークエンスの途中で静的リポジトリが変更されたことがわかった場合、静的リポジトリゲートウェイは OAI-PMHエラー badResumptionTokenを発行しなければ なりません

4.5. セキュリティについて

静的リポジトリゲートウェイを運用する際には以下のセキュリティ問題に注意する必要があります。

A1. XMLスキーマ

静的リポジトリは静的リポジトリXMLスキーマに対して妥当でなければなりません。このスキーマは、OAI-PMH v.2.0の型定義を制限することにより多くの 静的リポジトリ適合規則を強制する制限付きOAI-PMH XMLスキーマを介して、OAI-PMH v.2.0名前空間から要素をインポート しています。

A1.1 静的リポジトリXMLスキーマ

静的リポジトリXMLスキーマ
<?xml version="1.0" encoding="utf-8"?>
<schema targetNamespace="http://www.openarchives.org/OAI/2.0/static-repository"
        xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:sr="http://www.openarchives.org/OAI/2.0/static-repository"
        xmlns:oai="http://www.openarchives.org/OAI/2.0/"
        elementFormDefault="qualified"
        attributeFormDefault="unqualified">

  <import namespace="http://www.openarchives.org/OAI/2.0/"
          schemaLocation="http://www.openarchives.org/OAI/2.0/OAI-PMH-static-repository.xsd"/>

  <annotation>
    <documentation>
    This XML Schema specifies the structure of an OAI-PMH Static Repository. 
    A Static Repository is an XML file that is valid according to this XML 
    Schema and is described in 
    http://www.openarchives.org/OAI/2.0/guidelines-static-repository.htm
    A Static Repository is made accessible as an XML file on a standard 
    web-server. No special software is required at the end of the organization
    that makes the Static Repository available. A Static Repository becomes 
    harvestable via the OAI-PMH through the intermediation of a Static 
    Repository Gateway. 

    This Static Repository XML Schema by Herbert Van de Sompel and Henry N. 
    Jerez (Los Alamos National Laboratory, Research Library, Digital Library 
    Research and Prototyping Team; original 2002-10-26), and Simeon Warner 
    (Cornell University). Inspired by the Vida work by Steven Bird for OAI-PMH
    v1.0 and for the Open Languages Archives Community; see 
    http://www.language-archives.org/docs/implement.html#Vida
    
    Beta2 release: 2004-03-30
    Release: 2004-04-23
    $Date: 2004/04/23 15:17:46 $
    </documentation>
  </annotation>

  <element name="Repository" type="sr:RepositoryType"/>

  <complexType name="RepositoryType">
    <annotation>
      <documentation>The Repository element has 2 child elements, Identify 
      and ListMetadataFormats, that are derived from the OAI-PMH v2.0 XML 
      Schema. The third element, ListRecords, is repeatable and is an 
      extension of the ListRecords defined in the OAI-PMH v2.0 XML Schema; 
      it has an additional attribute indicating the metadataPrefix of the 
      included metadata records.
      </documentation>
    </annotation>
    <sequence>
      <element name="Identify" type="oai:IdentifyType"/>
      <element name="ListMetadataFormats" type="oai:ListMetadataFormatsType"/>
      <element name="ListRecords" type="sr:ListRecordsType" maxOccurs="unbounded"/>
    </sequence>
  </complexType>

  <complexType name="ListRecordsType">
    <annotation>
      <documentation>The ListRecords element contains all records with 
      metadata expressed in one of the metadata formats supported by the 
      Static Repository. The mandatory metadataPrefix attribute specifies the 
      metadataPrefix of the included metadata; it must correspond with a value 
      of the metadataPrefix element contained in the ListMetadataFormats 
      element.
      </documentation>
    </annotation>
    <complexContent>
      <extension base="oai:ListRecordsType">
        <attribute name="metadataPrefix" type="oai:metadataPrefixType" use="required"/>
      </extension>
    </complexContent>
  </complexType>

</schema>
このスキーマは次のURLから入手できます。 http://www.openarchives.org/OAI/2.0/static-repository.xsd

A1.2 制限付きOAI-PMH XMLスキーマ

制限付きOAI-PMH XMLスキーマ
<schema targetNamespace="http://www.openarchives.org/OAI/2.0/"
        xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:oai="http://www.openarchives.org/OAI/2.0/"
        elementFormDefault="qualified"
        attributeFormDefault="unqualified">
  
  <annotation>
    <documentation>This schema restricts the contents a number of elements in
    the OAI-PMH v2.0 schema for use with the static repository schema: 
    http://www.openarchives.org/OAI/2.0/static-repository.xsd
    All elements remain in the namespace http://www.openarchives.org/OAI/2.0/ 
    used by OAI-PMH v2.0 and element instances accepted by these restricted 
    definitions would be valid according to the main schema:
    http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd
    Simeon Warner (Cornell University), 2004-02-12.

    Release: 2004-04-23
    $Date: 2004/05/11 14:40:07 $
    </documentation>
  </annotation> 

  <redefine schemaLocation="http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
   
  <complexType name="ListRecordsType">
    <annotation>
      <documentation>ListRecords block restricted so that it must not include a 
      resumptionToken element.</documentation>
    </annotation>
    <complexContent>
      <restriction base="oai:ListRecordsType">
        <sequence>
          <element name="record" type="oai:recordType" maxOccurs="unbounded"/>
        </sequence>
      </restriction>
    </complexContent>
  </complexType>

  <complexType name="IdentifyType">
    <annotation>
      <documentation>Identify block restricted so that it must not include a 
      compression element. Some element types also restricted.</documentation>
    </annotation>
    <complexContent>
      <restriction base="oai:IdentifyType">
        <sequence>
          <element name="repositoryName" type="string"/>
          <element name="baseURL" type="anyURI"/>
          <element name="protocolVersion" type="oai:protocolVersionType"/>
          <element name="adminEmail" type="oai:emailType" maxOccurs="unbounded"/>
          <element name="earliestDatestamp" type="oai:UTCdatetimeType"/>
          <element name="deletedRecord" type="oai:deletedRecordType"/>
          <element name="granularity" type="oai:granularityType"/>
          <element name="description" type="oai:descriptionType"
                   minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
      </restriction>
    </complexContent>
  </complexType>

  <complexType name="recordType">
    <annotation>
      <documentation>All records must have header and metadata. As deleted
      records are not supported it is not permissible to have header 
      only.</documentation>
    </annotation>
    <complexContent>
      <restriction base="oai:recordType">
        <sequence>
          <element name="header" type="oai:headerType"/>
          <element name="metadata" type="oai:metadataType"/>
          <element name="about" type="oai:aboutType" 
                   minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
      </restriction>
    </complexContent>
  </complexType>

  <complexType name="headerType">
    <annotation>
      <documentation>The header element must not contain any setSpec elements 
      or a status attribute.</documentation>
    </annotation>
    <complexContent>
      <restriction base="oai:headerType">
        <sequence>
          <element name="identifier" type="oai:identifierType"/>
          <element name="datestamp" type="oai:UTCdatetimeType"/>
        </sequence>
        <attribute name="status" type="oai:statusType" use="prohibited"/>
      </restriction>
    </complexContent>
  </complexType>

  <simpleType name="granularityType">
    <annotation>
      <documentation>The only granularity permitted is YYYY-MM-DD.</documentation>
    </annotation>
    <restriction base="oai:granularityType">
      <enumeration value="YYYY-MM-DD"/>
    </restriction>
  </simpleType>

  <simpleType name="deletedRecordType">
    <annotation>
      <documentation>As deleted records are not supported, the deletedRecord 
      element may only have the value 'no'.</documentation>
    </annotation>
    <restriction base="oai:deletedRecordType">
       <enumeration value="no"/>
    </restriction>
  </simpleType>

  </redefine>
</schema>
このスキーマは次のURLから入手できます。 http://www.openarchives.org/OAI/2.0/OAI-PMH-static-repository.xsd

謝辞

OAI-PMHの策定およびその他のOpen Archives Initiativeの活動に対して全米科学財団(Grant No. IIS-9817416)からご支援をいただきました。OAI-PMHバージョン2.0の策定で 多大なご協力をいただいた個人の皆様に、プロトコルドキュメントにおいて 感謝の意を表します

この静的リポジトリの仕様は、OAI-PMHの実装を先導するコミュニティOpen Language Archives Community (OLAC)のために Steven BirdとGary Simonsが開発したViDa (Virtual Data Provider)から着想しました。Steven Bird とGary Simons の両氏には特に感謝いたします。また、有益なコメントを いただいた Pete Johnston、Tim Cole、Tom Habingの3氏にも感謝いたします。

ドキュメント履歴

2004-04-23: OAI静的リポジトリおよびOAI静的リポジトリゲートウェイ仕様書のリリース。
2003-10-10: ベータリリース。
2002-11-13: アルファリリース。
2002-09-28: OAIコアチームへのこのドキュメント最初のプレリリース。