URI//解決

URLの解決 (XML型録)

[1] XML型録を使った URI解決について。 <http://www.oasis-open.org/committees/entity/spec.html#s.uri.res> 参照。

なお、 相対URI の解決については 相対URI//解決, 一般の URN の解決については URN//解決参照。

[2]

  1. URI が入力として与えられているとします。
  2. URI が RFC3151urn:publicid:URN である場合は、皮を剥いで (unwrap して) 公開識別子を取り出し、外部識別子//解決の手順で解決します。 そうでない場合はこのまま続行します。

  1. 現在の型録項目ファイル並びの最初の型録項目ファイルを処理します。
  2. 一致する uri 項目がある場合は、 そこに指定された絶対URI を結果とします。 (複数一致するものがある場合、最初のものを結果とします。以降同じ。)
    1. 一致する rewriteURI 項目がある場合は、 その書換え結果を結果とします。
    2. 一致する delegateURI 項目がある場合は、 委譲します。
      1. 一致する全てdelegateURI 項目に指定された型録項目ファイルから、 新しい型録項目ファイル並びを用意します。
        • この時、並べる順番は、一致部分が長い順とします。
      2. 与えられた URI を入力として、 最初の手順に戻ります。その結果が得られれば、 これを返します。
      3. 委譲検索終了後、「現在の型録項目ファイル並び」 は元のもの (委譲前のもの) に戻ります。
  3. nextCatalog 項目があれば、 全て、その出現順に、型録項目ファイル並びの現在の型録項目ファイルのすぐ後ろに追加します。
  4. 現在の型録項目ファイル並びに型録項目ファイルが残っていれば、 次の型録項目ファイルに移ります。 (最初の手順へ)
  5. 結果が得られなかったと報告します。

関連

[3] 外部識別子の解決も参照。