連結データベース

連結データベース

[1] 内向き第三者連結を集めた文書のことを、 連結データベース (link database) あるいは連結ベース (linkbase) といいます。 (<http://www.w3.org/TR/xlink/#dt-linkbase> 参照。)

[2] 5.1.5 Locating Linkbases (Special Arc Role) <http://www.w3.org/TR/xlink/#xlg> では、連結ベースを関連付ける方法が説明されています。

連結ベースを使うときには、連結の弧 (arc 型要素) の xlink:arcrole 属性の値に http://www.w3.org/1999/xlink/properties/linkbase を使用します。

その弧の終点資源が連結ベースです。 連結ベースは、 XML 文書でなければなりません。 連結ベースの XML 文書は XLink による連結の定義を含んでいます。

(XLink 処理器は他の方法で連結ベースを処理できても構いません。)

[3] 連結ベース弧の取扱いは通常とほとんど同じですが、 探索の結果終点資源を利用者に表示したりするのではなく、 連結ベース内の連結の定義を読込んで使えるように準備します。 XLink 応用は利用者の任意選択によりこの探索を停止できなければなりません

連結ベースを読み込んだら応用は何が開始資源であるのかの追跡を続けるべきです。 開始資源を含む文書が読込まれて連結ベース弧の探索が行われたら、 応用は連結ベースに接続して、その中の拡張連結を展開するべきです。 展開された資源が完全な XML 文書の一部である場合には、 展開された部分が完全に含まれる拡張連結だけを利用可能とするべきです

(連結ベースを読込む時機は連結ベース弧の xlink:actuate 属性に拠ります。)

[4] 連結ベースは他の連結ベース弧の開始資源とすることによって連鎖して構いません。 応用は鎖を追いかける深さを限定しても構いません

応用は連結ベースの処理の結果として取出した拡張連結の一覧を管理するべきです。 応用は循環参照している連結ベースで重複して資源や連結を取出すべきではありません

[5] 例 (仕様書から):

<basesloaded xlink:type="extended"
        xmlns:xlink="http://www.w3.org/1999/xlink">
  <startrsrc xlink:type="locator"
        xlink:label="spec"
        xlink:href="spec.xml" />
  <linkbase xlink:type="locator"
        xlink:label="linkbase"
        xlink:href="linkbase.xml" />
  <load xlink:type="arc"
        xlink:from="spec" xlink:to="linkbase"
        xlink:actuate="onLoad"
        xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
</basesloaded>

この XML 文書片は、 spec.xml が読込まれた時に連結ベースとして linkbase.xml を読込んで適用するように指定しています。

[6] 例 (同じく仕様書から):

<basesloaded xlink:type="extended"
        xmlns:xlink="http://www.w3.org/1999/xlink">
  <startrsrc xlink:type="locator"
        xlink:label="spec"
        xlink:href="spec.xml#string-range(//*,'Click here to reveal annotations.')" />
  <linkbase xlink:type="locator"
        xlink:label="linkbase"
        xlink:href="linkbase.xml" />
  <load xlink:type="arc"
        xlink:from="spec" xlink:to="linkbase"
        xlink:actuate="onRequest"
        xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
</basesloaded>

こちらの例では、 spec.xml 中の Click here to reveal annotations. という箇所について要求があったときに、 linkbase.xml が読込まれます。 (連結ベース探索の始点 (文書内の箇所) と連結ベースの適用対象は関係ないことに注意。)

(onRequest の「要求」 を行う方法は Click とは限らないので、 この XML 文書片は汎用的ではありません。 例外なく特定の場面で特定の XLink 応用にのみ処理されることが分かりきっているのならよいでしょうが、 そうでない場合にはこのような書き方はよくないでしょう。)

[7] 連結ベース目録中の arc 型要素では、常に (明示された属性値にかかわらず) xlink:shownone, xlink:actuateonLoad とみなされます。 <http://www.w3.org/TR/xlink/#link-behaviors>

[8] <http://www.w3.org/1999/xlink/properties/linkbase>403 で、何かはあるようですが、 何も表示できません。