標準情報(TR)    TR X 0076:2003


XMLリンク付け言語 (XLink) 1.0

XML Linking Language (XLink) Version 1.0



序文

この標準情報(TR)は,2001年6月にWorld Wide Web Consortium(W3C)から公表されたXML Linking Language (XLink) Version 1.0勧告を翻訳し,技術的内容を変更することなく作成した標準情報(TR)(タイプU)である。


0. 適用範囲

この標準情報(TR)は,XMLリンク付け言語(XLink)を規定する。XLinkは,資源間のリンクを生成し記述するために,要素をXML文書の中に挿入することを可能にする。XLinkは,今日のHTMLの単純な単一方向ハイパリンクに類似するリンク及びもっと高度なリンクを記述できる構造を生成するために, XML構文を用いる。

1. 導入

この標準情報(TR)は,XMLリンク付け言語(XLink)を規定する。XMLリンク付け言語は,資源の間のリンクを生成し記述するために,XML文書の中に要素を入れることを可能にする。

XLinkは,基本的な単一方向リンク及びもっと複雑なリンク付け構造の両方を生成するための枠組みを提供する。それは,XML文書に対して次のことを可能にする。

  • 二つより多い資源の間にリンク付け関係を表明する。

  • メタデータをリンクと関連させる。

  • リンク付けされた資源から分離した位置にあるリンクを表現する。

XLinkの重要なアプリケーションは,ハイパリンクをもつハイパメディアシステムの中にある。ハイパリンクの単純な場合が,HTMLのA要素であるが,その単純な場合のハイパリンクは,次の特徴をもつ。

  • ハイパリンクは,その位置指定子の技法として,URIを用いる。

  • ハイパリンクは,その二つの端点の一方において表現される。

  • ハイパリンクは,他方の端点を識別する。(ただし,サーバは,その到達先を探す又は動的に生成することに,大きな自由度をもってもよい。)

  • 利用者は,一方の端点だけからたどりを開始できる。この場合,ハイパリンクが他方の端点に対して表現されている。

  • ウィンドウ,フレーム,戻りリスト,使用中のスタイルシートなどへのハイパリンクの効果は,ハイパリンクそれ自体ではなく,利用者エージェントによって決定される。例えば,Aリンクのたどりは,通常,現在のビューを, 新しいウィンドウを開くという利用者オプションで置き換えたりする。

これらの特徴は強力だが,その基礎をなすモデルは,可能なハイパリンク機能の範囲を制限している。この規定において定義されるモデルは,URI技法の利用をHTMLと共有する。しかし,以前は専用のハイパメディアシステムだけで利用可能であった機能で,ハイパリンク付けをより規模拡張可能にし柔軟にする機能を提供する点においてHTMLを凌ぐ。リンク付けデータ構造の提供に加えて,XLinkは,最小のリンク振舞いモデルを提供する。多くの場合,XLinkの上位に位置付けられる上位アプリケーションが,替わりになる又はより高度なレンダリング及び処理の扱いを規定する。

関係データベースにおける外来キー,及びプログラム言語における参照値といった,他の技術領域で用いる特殊化されたリンクの統合化された扱いは,この規定の適用範囲外とする。

1.1 起源及び目標

XLinkの設計は,確立されたハイパメディアのシステム及び規定に関する知識に基づく。特に次の規定の影響が大きい。

  • HTML [HTML]: リンクを表現する幾つかの要素型を定義している。

  • HyTime [ISO/IEC 10744]: 行内,境界内及び第三のリンク構造,並びにたどり制御及びオブジェクトの表示を含む幾つかの意味的な機能を定義している。

  • Text Encoding Initiative Guidelines [TEI]: リンク,集約オブジェクト及びリンクの集まりを生成するための構造を提供している。

他の多くのリンク付けシステムも,特に, [Dexter], [FRESS], [OHS], [MicroCosm], 及び[Intermedia] も, XLinkの設計に情報を与えた。

XLinkの設計に関する要件の包括的な説明については,XLink要件文書[XLREQ]を参照すること。

2. XLinkの概念

2.では,XLink構成要素の生成に用いる構文の議論をしないで,XLinkを理解するために本質的な用語及び概念を示す。若干の付加的な用語が,この規定の後の方で示される。

2.1 リンク及び資源

定義 XLinkのリンクは,資源間又は資源の部分間の明示的な関係とする。
定義 XLinkのリンクは,XLinkのリンク付け要素によって明示的にされる。リンク付け要素は,リンクの存在を主張するXLink適合のXML要素とする。
六つのXLinkの要素が存在する。その中の2個だけが,リンク付け要素と考えられる。他の要素は,リンクの特質を記述する情報の様々な断片を提供する。(この規定で用いる用語"リンク"とは,XLinkのリンクだけを指す。ただし,非XLink構成要素がリンクとして利用できることを妨げるものではない。)

資源の概念は,World Wide Webにとって普遍的とする。

定義 [IETF RFC 2396]に示されるとおりに,資源は,番地付け可能な情報単位又はサービス単位とする。

資源の例には,ファイル,画像,文書,プログラム及び問合せ結果がある。資源を番地付けするのに用いる手段は,URI(Uniform Resource Identifier,統一資源識別子)参照とする。(その詳細は,5.4 位置指定子属性(href)に示す。) 資源の部分を番地付けすることができる。例えば,資源全体がXML文書の場合,その資源の有用な部分は,文書内にある特定の要素かもしれない。例えば,それへのリンクを追うことによって,その要素が強調されたり,文書中のその点までスクロールされたりするかもしれない。

定義  リンクが資源の集合に関連するとき,それらの資源は,リンクに参加するという。

XLinkのリンクはXML文書中に出現しなければならないが,それは,XML符号化された資源だけでなくあらゆる種類の資源を関連付けることができる。

XLinkの共通的な使用の一つに,ハイパリンクを生成することがある。

定義 ハイパリンクとは,第一義的には,人間の利用者への表示を意図したリンクとする。

しかし,XLinkの設計は,ハイパリンクが計算機による利用だけを意図したリンクで使われることを妨げるものではない。

2.2 弧,たどり及び振舞い

定義 どんな目的であっても, リンクを使用し又はリンクを追うことを,たどりという。

ある種のリンクは任意の数の資源を関連付けることができるが,たどりは,常に1対の資源(又は資源の部分)に関連する。

定義 たどりを始める資源を始点資源とする。
定義 たどり先を終点資源とする。

この手法で用いる用語"資源"は,資源全体ではなく,資源の部分に適用されることがあってもよい。

定義 1対の資源をどのようにたどるかの情報をという。この情報には,たどりの方向及びアプリケーションの振舞い情報も含まれる。

一つのリンクにおける二つの弧が同じ対の資源を指定するが,それらが始点資源及び終点資源としての場所を切り替える場合,そのリンクは,複数の方向をもつ。それは,リンクをたどった後の単なる"戻り"とは同じではない。

2.3 リンク付け要素の物理的位置に相対的な資源

定義 局所資源とは,リンク付け要素を親としてもつことによって,又はそれ自体がリンク付け要素であることによって,リンクに参加するXML要素とする。
定義 URI参照で番地付けされることによって,リンクに参加する資源又は資源部分は,たとえそれが,そのリンクと同じXML文書の中にあっても,又は同じリンク付け要素の内部にあっても,遠隔資源と考える。

すなわち,局所資源は"値によって"指定され,遠隔資源は"参照によって"指定される。

定義 局所始点資源及び遠隔終点資源をもつ弧は,外向きに行く,つまり,リンク付け要素から離れる。

そうした弧をもつリンクの例に,HTMLのA要素,HyTimeの"clinks," 及びText Encoding InitiativeのXREF要素がある。

定義 弧の終点資源が局所だが,その始点資源が遠隔の場合,その弧は,内向きに行く。
定義 始点資源も終点資源も局所でない場合,その弧は,第三の弧とする。

必須ではないが,いかなる一つのリンクも,通常は全体として1種類の弧だけを指定し,したがって,そのリンクは,内向き,外向き又は第三の弧として参照されてもよい。

書込みアクセスをもたない(又は書込みアクセスを実行させない)資源から,又はリンク付け構成要素を埋め込む方法を提供しない資源から出てくるリンクを生成するためには,内向き又は第三の弧を使う必要がある。 それらの弧を使う場合には,リンクの発見についての要件は,外向きの弧についてのものより大きい。

定義 内向き及び第三のリンクの集まりを含む文書を,リンクデータベース又はリンクベースと呼ぶ。

3. XLinkの処理及び適合性

3.では,XLinkアプリケーション及びマーク付けに関する処理及び適合性要件を詳しく示す。

定義 この規定では,キーワード,しなければならない(must)してはならない(must not)必す(須)の(required)しなければならない(shall)してはならない(shall not)することが望ましい(should)しないことが望ましい(should not)推奨する(recommended)してもよい(may),及びオプションの(optional)は,[IETF RFC 2119]で記述されるとおりに解釈することが望ましい。

3.1 処理依存性

XLink処理系は,[XML][XML Names][XML Base],及び [IETF RFC 2396] ([IETF RFC 2732]によって追加更新されている。)に依存する。

3.2 マーク付け適合性

XML要素は,次の場合に,XLinkに適合する。

  1. 値が"simple","extended","locator","arc","resource","title",又は"none"のうちの一つである,XLink名前空間からのtype属性をもつ。

  2. 選択されたXLink要素型によって課された適合性制約を,この標準情報(TR)で規定するとおりに順守する。

この規定は,DTDに関する特定の制約を課さない。適合性は,要素及び属性だけに適用される。

3.3 アプリケーション適合性

XLinkアプリケーションは,XLinkの要素及び属性を含む整形式XML文書,又はXLink要素及び属性に対応する情報項目及び特性を含むXML情報集合[XIS]を解釈するあらゆるソフトウェアモジュールとする。この規定は,要素及び属性を参照するが,その中のすべての規定は,同様に,それらの情報集合における等価なものにも適用される。それらアプリケーションは,次を行う場合に,適合するとする。

  1. この規定において設定されるアプリケーションに対して必す(須)の条件("しなければならない"と規定されている条件)を守る。

  2. アプリケーションが守ると選択したオプションの条件("ことが望ましい"及び"してもよい"と規定されている条件)に対して,その条件を規定された方法で守る。

  3. この規定に示されるすべての適合性制約に従ったマーク付け適合性試験を実行する。

4. XLinkマーク付け設計

4.では,XLinkのマーク付け語い(彙)の設計を示す。

リンクマーク付けは,適格にたどられ処理されるために,XLinkアプリケーションによって信頼性をもって認識される必要がある。XLinkは,XML名前空間勧告[XML Names]に記述された機構を使用して,XLink語い(彙)による構成要素の認識を達成する。

この規定によって定義されたXLink名前空間は,次のURIをもつ。

http://www.w3.org/1999/xlink

[XML Names]によって指示されたとおり,XLinkの要素及び属性を使うには,XLink名前空間の宣言が必要になる。例えば,次の宣言は,XLink名前空間を表現するために,myElement要素内で接頭辞xlinkを利用可能にする。

<myElement
  xmlns:xlink="http://www.w3.org/1999/xlink">
  ...
</myElement>

備考  この規定の多くの記述例では,XLink名前空間宣言を示していない。xlink接頭辞は,この規定の全体を通して,その例でXLink名前空間宣言が存在するかどうかにかかわらず,要素上でのXLink名前空間の宣言を表すために使用される。この場合,その要素の適用範囲の中に,そのように(すなわち,xlink接頭辞付で)マーク付けされた属性が(その属性をもつ同じ要素上に,又は何らかの先祖要素上に)に出現する。

XLinkの名前空間は,任意の名前空間の中にある要素上で使用するために,大域属性を提供する。大域属性は,typehrefrolearcroletitleshowactuatelabelfrom,及びtoとする。文書作成者は,彼ら自身の名前空間の中の要素,又は彼らが制御しない名前空間の中の要素さえも,XLink要素として認識可能にするために,XLink大域属性を使用する。type属性は,XLink要素型(simple,extended,locator,arc,resource,又はtitle)を指し示す。その要素型は,それら要素が従わなければならないXLinkが課す制約,及びその要素に出会うXLinkアプリケーションの振舞いを指示する。

次に,XLink大域属性をもつ,非XLink名前空間からのcrossReference要素の例を示す。

<my:crossReference
  xmlns:my="http://example.com/"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xlink:type="simple"
  xlink:href="students.xml"
  xlink:role="http://www.example.com/linkprops/studentlist"
  xlink:title="Student List"
  xlink:show="new"
  xlink:actuate="onRequest">
Current List of Students
</my:crossReference>

大域属性の使用は,個々の属性に名前空間接頭辞を使用すること,及び要素にtype属性を使用することを,常に要求する。

4.1 XLink属性の使用パタン

XLink属性は,名前空間機構を使用することによって大域的になると考えられるが,一つのXLink要素型に関してそれら属性の許される組合せは,それらが出現する要素に対する特別なtype属性(詳細情報については5.3 XLink要素型属性(type)を参照)の値に,大きく依存する。この規定における適合性制約の備考が,それらの許される使用パタンを詳しく示す。次に,要素型(行)に関する許される大域属性(列)の一覧を,必す(須)(R)又はオプション(0)のどちらかの値を付して示す。

simple extended locator arc resource title
type R R R R R R
href O R
role O O O O
arcrole O O
title O O O O O
show O O
actuate O O
label O O
from O
to O

属性の許されるパタンを表した参考のDTDについては,附属書B DTDの例を参照すること。

この規定は,XLink要素型と関連付けられた制約の名前付き集合に順守しなければならない要素を参照するために,その要素が実際にもっている名前とは関係なく,"xxx型要素"という決まった形式を使う。例えば,"locator型要素"は,次の要素のすべてを参照する。

<locator xlink:type="locator" ... />
<loc xlink:type="locator" ... />
<my:pointer xlink:type="locator" ... />

4.2 XLink要素型の関係

様々なXLink要素型は,それらが他のXLink要素型の直接の子どもとして現われる場合には,この規定によって規定される特別な意味をもつ。次に,特定の親要素型において意味のある役割を演じる子要素型の一覧を示す。他の組合せは,XLinkの規定では重要でない。

親の型 意味のある子の型
simple none
extended locator, arc, resource, title
locator title
arc title
resource none
title none

4.3 属性値のデフォルト化

XLinkの使用は,重要なリンク情報を供給する多くの属性を使用することに,潜在的に関係する。望まれるXLink属性の値が,ある型のすべての文書における個々のインスタンスに渡って不変になっている場合には,属性値の(固定的又は非固定的な)デフォルトをDTDに追加してもよく,その結果として,その属性は,要素開始タグに物理的に出現しなくともよい。例えば,属性のデフォルトが,4. XLinkマーク付け設計の導入での例における,xmlns:xlink属性,xmlns:my属性,type属性,show属性,及びactuate属性に対して提供された場合には,その例は,次のとおりとなる。

<my:crossReference
  xlink:href="students.xml"
  xlink:role="http://www.example.com/linkprops/studentlist"
  xlink:title="Student List">
Current List of Students
</my:crossReference>

DTDの制御の下で生成された情報集合には,すべての属性値が与えられている。

4.4 XLinkの使用と他のマーク付けとの統合

この規定は,XLink名前空間における属性及び属性値だけを定義する。XLink属性と平行して非XLink属性を使用することについての制限はない。さらに,大部分のXLink属性はオプションであって,単純リンク又は拡張リンクの選択は,マーク付け設計者又は文書作成者に任されているので,XLink機能を使用するDTDは,XLinkの属性の完全な集合を使用したり宣言したりする必要はない。この規定はXLinkマーク付けに関する最小の制約を識別するが,最終的には,XLinkを使うDTDは,これらの制約を自由に強化してよい。XLinkを使用することで,妥当な文書が,そのDTDの管理において表現される制約への適合から免除されることはない。

次に,XLink属性及び非XLink属性の両方をもつcrossReference要素の例を示す。

<my:crossReference
  xmlns:my="http://example.com/"
  my:lastEdited="2000-06-10"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xlink:type="simple"
  xlink:href="students.xml">
Current List of Students
</my:crossReference>

4.5 旧来のマーク付けをともなったXLinkの使用

XLinkの大域属性は,名前空間接頭辞の使用を要求するので,旧来の文書の中の非XLinkに基づくリンクは,属性値デフォルト化が使用される場合であっても,そのままでは適合XLink構成要素としては役に立たない。例えば,XHTML 1.0は,href属性付きのa要素をもつが,その属性は,XHTML名前空間の中のa要素に添付された局所的なものなので,XLink名前空間の中のxlink:href大域属性と同じではない。

5. XLinkの要素及び属性

XLinkは,次の2種類のリンクを提供する。

拡張リンク

拡張リンクは,任意の数の資源が参加するリンクだけでなく,内向きの弧及び第三の孤といった,完全なXLinkの機能を提供する。結果として,それらの構造はかなり複雑になる可能性があり,遠隔資源を指し示すための要素,局所資源を包含するための要素,孤のたどり規則を指定するための要素,並びに人間が読むことができる資源及び孤の表題を指定するための要素を含んでいる。

XLinkは,リンクベースを見つけるために,拡張リンクに特殊なセマンティクスを与える方法を定義する。この手法を使って,拡張リンクは,XLinkアプリケーションが他のリンクを処理することを支援する。

単純リンク

単純リンクは,共通的な種類のリンク,すなわち,ちょうど二つの資源が参加する外向きリンクに対する短縮構文を提供する。(HTMLのA及びIMGのリンクは,この分類に入る。)単純リンクは,拡張リンクよりも機能性が低いので,特殊な内部構造はもたない。

単純リンクは,概念的には拡張リンクの部分集合なのだが,構文的には異なっている。例えば,単純リンクを拡張リンクに変換するためには,幾つかの構造的な変更が必要になる。

5.では,XLinkの要素及び属性を定義する。

5.1 拡張リンク(extended型要素)

定義 拡張リンクとは,任意の数の資源を関連付けるリンクとする。参加する資源は,遠隔及び局所のあらゆる組合せであってよい

内向きの弧及び第三の孤をもつことができるただ一つの種類のリンクは,拡張リンクとする。通常,拡張リンク付け要素は,(例えば,完全に異なる文書の中など,)それが関連する資源とは分離して記憶される。そこで,拡張リンクは,参加する資源が読取り専用の場合,それら資源の修正及び更新には手間がかかるが分離されたリンク付け要素の修正及び更新には手間がかからないという場合,又は(多くのマルチメディアフォーマットのように)埋め込まれたリンク用の固有なサポートがないフォーマットで資源が表されている場合,重要になる。

図5.1は,五つの遠隔資源を関連付ける拡張リンクを示す。これによって,例えば,学生の課程状況を表現できる。すなわち,一つの資源が学生を記述し,他の一つの資源が学生の学業上のアドバイザを記述し,二つの資源が学生が出席している課程を表現し,最後の資源が学生が聴講している課程を表現する。

Stylized Diagram of Out-of-Line Extended Link 図5.1 行外拡張リンクの様式付けられた図

拡張リンクなしでは,資源は完全には関係付けられないかもしれない。例えば,資源は,五つの別々の文書の中にあるかもしれない。拡張リンクから出ている線は,その拡張リンクが資源間で生成する関連を表現する。しかし,線は方向性をもたないことに注意すること。方向性は,(線の)たどり規則を用いて表現される。それら規則が提供されない場合には,資源は,個々の資源がアクセスされるかどうか及びどのようにアクセスされるかに関する示唆なしに,特別な順番なしに関連付けられる。

図5.2は,五つの遠隔資源及び一つの局所資源(拡張リンク要素内部の一つの特殊な要素)を関連付ける拡張リンクを示す。これによって,図5.1で示した課程状況の例と同種のものを,局所的に記憶された学生の成績の平均を追加して表現できる。ここでも,線は,たどりの方向も振舞いも示唆しないで,六つの資源の関連だけを表現する。

Stylized Diagram of Inline Extended Link 図5.2 行内拡張リンクの様式付けられた図

拡張リンクに対するXLink要素型は,XLink名前空間の中の,値が"extended"であるtypeと呼ばれる属性をもった任意の要素とする。

extended型要素は,次の要素を,任意の順番で,可能ならば他の内容及びマーク付けを伴って,混合したものを含んでもよい

  • リンクに参加する遠隔資源を示すlocator型要素。

  • リンクの参加資源間のたどり規則を提供するarc型要素。

  • リンクに対して人間が読むことができるラベルを提供するtitle型要素。

  • リンクに参加する局所資源を供給するresource型要素。

extended型要素が二つよりも少ない資源を関連付けるのはエラーではない。リンクが一つだけの参加資源をもつ場合又は全く参加資源をもたない場合には,そのリンクは,単に,たどれない,とする。そうしたリンクでも,例えば,特性をXLink属性を用いて一つの資源に関連付けるために,又はいつかは使用されるであろうリンク情報用のプレースホルダを提供するために,役に立つことがある。

extended型要素の内部のどこにあってもよいsimple型又はextended型の下位要素は,XLink指定の意味をもたない。extended型要素の直接の子どもではないlocator型,arc型又はresource型の下位要素は,XLink指定の意味をもたない。

extended型要素は,意味属性であるrole及びtitleをもってよい(5.5 意味属性(role,arcrole及びtitle)参照)。それらは,全体として,リンクについての意味的な情報を供給する。role属性は,リンク全体がもつ特性を指し示し,title属性は,リンク全体の人間が読むことができる記述を指し示す。他のXLink属性が要素に存在する場合には,それらは,そのリンクへのXLink指定の関係をもたない。一つのtitle属性及び一つ以上のtitle型要素の両方が存在する場合には,それらは,XLink指定の関係をもたない。この場合,XLinkの上に構築される上位アプリケーションで,(例えば優先度などの)適切な取扱いが指定されることが多い。

例 extended型要素の宣言及びインスタンス

次に,extended型要素及びその下位要素のための宣言を参考として示す。この例の一部は,この規定を通して再利用される。type属性及び幾つかのそれ以外の属性は,インスタンスごとに変化する属性を強調するために,DTDの中ではデフォルト化されている。

<!ELEMENT courseload ((tooltip|person|course|gpa|go)*)>
<!ATTLIST courseload
  xmlns:xlink     CDATA           #FIXED "http://www.w3.org/1999/xlink"
  xlink:type      (extended)      #FIXED "extended"
  xlink:role      CDATA           #IMPLIED
  xlink:title     CDATA           #IMPLIED>

<!ELEMENT tooltip ANY>
<!ATTLIST tooltip
  xlink:type      (title)         #FIXED "title"
  xml:lang        CDATA           #IMPLIED>

<!ELEMENT person EMPTY>
<!ATTLIST person
  xlink:type      (locator)       #FIXED "locator"
  xlink:href      CDATA           #REQUIRED
  xlink:role      CDATA           #IMPLIED
  xlink:title     CDATA           #IMPLIED
  xlink:label     NMTOKEN         #IMPLIED>

<!ELEMENT course EMPTY>
<!ATTLIST course
  xlink:type      (locator)       #FIXED "locator"
  xlink:href      CDATA           #REQUIRED
  xlink:role      CDATA           #FIXED "http://www.example.com/linkprops/course"
  xlink:title     CDATA           #IMPLIED
  xlink:label     NMTOKEN         #IMPLIED>

<!-- GPA = "grade point average" -->
<!ELEMENT gpa ANY>
<!ATTLIST gpa
  xlink:type      (resource)      #FIXED "resource"
  xlink:role      CDATA           #FIXED "http://www.example.com/linkprops/gpa"
  xlink:title     CDATA           #IMPLIED
  xlink:label     NMTOKEN         #IMPLIED>

<!ELEMENT go EMPTY>
<!ATTLIST go
  xlink:type      (arc)           #FIXED "arc"
  xlink:arcrole   CDATA           #IMPLIED
  xlink:title     CDATA           #IMPLIED
  xlink:show      (new
                  |replace
                  |embed
                  |other
                  |none)          #IMPLIED
  xlink:actuate   (onLoad
                  |onRequest
                  |other
                  |none)          #IMPLIED
  xlink:from      NMTOKEN         #IMPLIED
  xlink:to        NMTOKEN         #IMPLIED>

次に,これらの宣言を使用するXML要素がどのようになるかを示す。

<courseload>

  <tooltip>Course Load for Pat Jones</tooltip>

  <person
    xlink:href="students/patjones62.xml"
    xlink:label="student62"
    xlink:role="http://www.example.com/linkprops/student"
    xlink:title="Pat Jones" />

  <person
    xlink:href="profs/jaysmith7.xml"
    xlink:label="prof7"
    xlink:role="http://www.example.com/linkprops/professor"
    xlink:title="Dr. Jay Smith" />
  <!-- more remote resources for professors, teaching assistants, etc. -->

  <course
    xlink:href="courses/cs101.xml"
    xlink:label="CS-101"
    xlink:title="Computer Science 101" />
  <!-- more remote resources for courses, seminars, etc. -->

  <gpa xlink:label="PatJonesGPA">3.5</gpa>

  <go
    xlink:from="student62"
    xlink:to="PatJonesGPA"
    xlink:show="new"
    xlink:actuate="onRequest"
    xlink:title="Pat Jones's GPA" />
  <go
    xlink:from="CS-101"
    xlink:arcrole="http://www.example.com/linkprops/auditor"
    xlink:to="student62"
    xlink:show="replace"
    xlink:actuate="onRequest"
    xlink:title="Pat Jones, auditing the course" />
  <go
    xlink:from="student62"
    xlink:arcrole="http://www.example.com/linkprops/advisor"
    xlink:to="prof7"
    xlink:show="replace"
    xlink:actuate="onRequest"
    xlink:title="Dr. Jay Smith, advisor" />

</courseload>

5.1.1 拡張リンクのための局所資源(resource型要素)

拡張リンクは,その拡張リンクの内部に出現する特殊な下位要素を用いて,そのリンクに参加する局所資源を指し示す。下位要素は,その内容すべてとともに,全体として,一つの局所資源をマーク付けする。

局所資源のためのXLink要素は,XLink名前空間の中の,値が"resource"であるtypeと呼ばれる属性をもった任意の要素とする。

resource型要素は,任意の内容をもってよい。どんな内容が存在しようとも,そのリンクへのXLink指定の関係が生じることはない。resource型要素が内容をもたないこともある。その要素が要求時にたどられることを期待される始点資源として役に立つ場合,対話的なXLinkアプリケーションは,そのたどりを開始する方法を利用者に与えるために,通常は何らかの内容を生成する。resource型要素が親に対してextended型要素以外のものをもつ場合には,resource型要素は,XLink指定の意味をもたない。

resource型要素は,意味属性であるrole及びtitle(5.5 意味属性(role,arcrole及びtitle)を参照)及びたどり属性であるlabel(5.7 たどり属性(label,from及びto)参照)をもってよい。意味属性は,資源へと導く特定の弧の文脈以外で,より普通の言葉で資源についての情報を供給する。role属性は,資源の特性を指し示し,title属性は,資源の人間が読むことができる記述を指し示す。label属性は,arc型要素がたどる弧を生成する際にその属性を参照する方法を提供する。

例 resource型要素の宣言及びインスタンス

次に,resource型要素のための宣言を参考として示す。

<!ELEMENT gpa ANY>
<!ATTLIST gpa
  xlink:type      (resource)      #FIXED "resource"
  xlink:role      CDATA           #FIXED "http://www.example.com/linkprops/gpa"
  xlink:title     CDATA           #IMPLIED
  xlink:label     NMTOKEN         #IMPLIED>

次に,これらの宣言を使うXML要素がどのようになるかを示す。

  <gpa xlink:label="PatJonesGPA">3.5</gpa>

5.1.2 拡張リンクのための遠隔資源(locator型要素)

拡張リンクは,位置指定子要素を用いてそのリンクに参加する遠隔資源を指し示す。

位置指定子のためのXLink要素は,XLink名前空間の中の,値が"locator"であるtypeと呼ばれる属性をもった任意の要素とする。

locator型要素は,任意の内容をもってよい。直接の子どもであるtitle型要素(5.1.4 拡張リンク,位置指定子及び弧のための表題(title型要素)参照)以外,いかなる内容が存在しようとも,そのリンクへのXLink指定の関係が生じることはない。locator型要素が入れ子のXLink要素を含む場合には,それらの含まれる要素は,親リンクへのXLink指定の関係をもたない。locator型要素が親に対してextended型要素以外のものをもつ場合には,locator型要素は,XLink指定の意味をもたない。

制約 位置指定子要素における属性

locator型要素は,位置指定子属性(5.4 位置指定子属性(href)参照)をもたなければならない。位置指定子属性(href)は,供給された値をもたなければならない

locator型要素は,意味属性であるrole及びtitle(5.5 意味属性(role,arcrole及びtitle)参照)及びたどり属性であるlabel(5.7 たどり属性(label,from及びto)参照)をもってよい。位置指定子属性は,遠隔資源を識別するURI参照を提供する。意味属性は,資源へと導く特定の弧の文脈以外で,より普通の言葉で資源についての情報を供給する。role属性は,資源がもつ特性を指し示し,title属性は,資源の人間が読むことができる記述を指し示す。label属性は,arc型要素がたどる弧を生成する際にその属性を参照する方法を提供する。

備考  locator型要素は,単に位置指定子(href)属性をもつという理由だけで,それ自体でリンクを構成することはない。それは,simple型要素とは異なり,それ自体と参照される資源との間でXLinkが支配する関連を生成しない。

例 locator型要素の宣言及びインスタンス

次に,locator型要素のための宣言を参考として示す。

<!ELEMENT person EMPTY>
<!ATTLIST person
  xlink:type      (locator)       #FIXED "locator"
  xlink:href      CDATA           #REQUIRED
  xlink:role      CDATA           #IMPLIED
  xlink:title     CDATA           #IMPLIED
  xlink:label     NMTOKEN         #IMPLIED>

<!ELEMENT course EMPTY>
<!ATTLIST course
  xlink:type      (locator)       #FIXED "locator"
  xlink:href      CDATA           #REQUIRED
  xlink:role      CDATA           #FIXED "http://www.example.com/linkprops/course"
  xlink:title     CDATA           #IMPLIED
  xlink:label     NMTOKEN         #IMPLIED>

次に,これらの宣言を使用するXML要素がどのようになるかを示す。

<person
  xlink:href="students/patjones62.xml"
  xlink:label="student62"
  xlink:role="http://www.example.com/linkprops/student"
xlink:title="Pat Jones" />

<person
  xlink:href="profs/jaysmith7.xml"
  xlink:label="prof7"
  xlink:role="http://www.example.com/linkprops/professor"
  xlink:title="Dr. Jay Smith" />

<course
  xlink:href="courses/cs101.xml"
  xlink:label="CS-101"
  xlink:title="Computer Science 101" />

5.1.3 拡張リンクのためのたどり規則(arc型要素)

拡張リンクは,それに参加する資源の間を,一連のオプションの弧要素を用いてたどるための規則を指し示してもよい

弧に対するXLink要素は,XLink名前空間の中の,値が"arc"であるtypeと呼ばれる属性をもった任意の要素とする。

arc型要素は,任意の内容をもってよい。直接の子どもであるtitle型要素(5.1.4 拡張リンク,位置指定子及び弧のための表題(title型要素)参照)以外,いかなる内容が存在しようとも,そのリンクへのXLink指定の関係が生じることはない。arc型要素がその親に対してextended型要素以外のものをもつ場合には,arc型要素は,XLink指定の意味をもたない。

arc型要素は,たどり属性であるfrom及びto(5.7 たどり属性(label,from及びto)参照),振舞い属性であるshow及びactuate(5.6 振舞い属性(show及びactuate)参照),及び意味属性であるarcrole及びtitle(5.5 意味属性(role,arcrole及びtitle)参照)をもってよい

たどり属性は,同じリンクの中に参加する資源の対の間での望ましいたどりを定義する。この場合,資源は,それらのlabel属性値によって識別される。from属性は,たどりが開始されてもよい資源,すなわち,始点資源を定義し,to属性は,たどられる先になってもよい資源,すなわち,終点資源を定義する。振舞い属性は,XLinkアプリケーションが,終点資源へとたどる際に使用することが望ましい振舞いを指定する。

意味属性は,弧の始点資源に対して相対的な弧の終点資源の意味を記述する。arcrole属性は,特性の[RDF]概念に対応し,その役割は,"starting-resource HAS arc-role ending-resource.(始点資源は,弧役割の終点資源をもつ。)"を述べているとして解釈できる。この文脈に依存する役割は,この特定の弧の文脈の外部で解釈される場合には,終点資源のその意味とは異なることができる。例えば,資源は,一般には"person"(人間)を表現するかもしれないが,特定の弧の文脈では,それは,"mother"(母)の役割をもつかもしれないし,異なる弧の文脈では,"daughter"(娘)の役割をもつかもしれない。

同じ資源が,(単一のリンクの中か,又は多くのリンクにまたがっているかに関係なく,)幾つかの弧の中の一つの始点資源として与えられる場合,(弧を)たどる要求の振舞いは,この規定によっては制約なしとするが,対話的アプリケーションは,一つの可能性として,関連する弧又はリンクの表題を一覧として示すポップアップメニューを提供してもよい。

図5.3は,五つの遠隔資源を関連付けそれらの間のたどりのための規則を提供する拡張リンクを示す。指定されている弧はすべて第三の弧とする。すなわち,弧は,遠隔資源の間では排他的になっている。方向性のない実線は,先の図と同様に,そのリンクが五つの資源を関連付けられていることを示す。新しい点線の矢は,リンクが提供するたどり規則を示す。同じlabel値を共有する資源があることに注意すること。

Stylized Diagram of Out-of-Line Extended Link with Arcs 図5.3 弧をもった行外拡張リンクの様式付けられた図

図5.3は,次の設定によって生成される方向付けられたたどり弧を反映している。ここで,A及びCの両方は,すべてのBへのたどりを開始することが可能とされている。幾つかの資源にはラベルが出現しているので,各々の弧の指定が,潜在的には,一度に複数個のたどり弧を生成する。

<go xlink:type="arc" xlink:from="A" xlink:to="B" />
<go xlink:type="arc" xlink:from="C" xlink:to="B" />

他の例として,五つの位置指定子であって,そのうちの二つがlabel値を"parent"とし,三つがlabel値を"child"とするものを含む拡張リンクを仮定する。

<extendedlink xlink:type="extended">
  <loc xlink:type="locator" xlink:href="..." xlink:label="parent" xlink:title="p1" />
  <loc xlink:type="locator" xlink:href="..." xlink:label="parent" xlink:title="p2" />
  <loc xlink:type="locator" xlink:href="..." xlink:label="child"  xlink:title="c1" />
  <loc xlink:type="locator" xlink:href="..." xlink:label="child"  xlink:title="c2" />
  <loc xlink:type="locator" xlink:href="..." xlink:label="child"  xlink:title="c3" />
... <!-- arc-type elements would go here -->
</extendedlink>

次は,親資源から子資源へのたどりを指定する。これには,p1-c1,p1-c2,p1-c3,p2-c1,p2-c2,及びp2-c3が含まれる。

<go xlink:type="arc" xlink:from="parent" xlink:to="child" />

値がfrom属性からもto属性からも供給されない場合には,その消失している値は,そのextended型要素の中のlocator型要素で供給されるすべてのラベルを表すとして解釈される。例えば,次は,親から子へのたどりを指定し,子どもから子どもへのたどりも指定する。これには,p1-c1,p1-c2,p1-c3,p2-c1,p2-c2,p2-c3,c1-c1,c1-c2,c1-c3,c2-c1,c2-c2,c2-c3,c3-c1,c3-c2,及びc3-c3が含まれる。

<go xlink:type="arc" xlink:to="child" />

この場合,たどり規則は,ある資源から同じラベルをもつ他の資源への弧(子どもから他の子どもへの弧),さらに,ある資源からそれ自体への弧(一つの子からそれ自体への弧)を含むことに注意すること。これは,エラーではない。

arc型要素が拡張リンクで提供されない場合,消失しているfrom値及びto値は,そのリンクの中のすべてのラベルを表すと解釈される。これは,次のたどりの指定と等価になる。

<go xlink:type="arc" />

二つ以上の位置指定子が同じラベルをもつ場合,同じラベルをもつ位置指定子の集合は,集約的な資源への参照としてではなく,個々の位置指定子として理解するのがよい。そのようなリンクのたどりの振舞いは,位置指定子のすべてが異なる役割をもち,適切な弧が同一のたどり対を生成するように指定されている場合のリンクと同じになるかもしれない。

拡張リンクのための弧のたどり規則が任意の可能なたどり対を無効にする場合には,XLinkは,これらの対に対するたどりについて定義しない。上位アプリケーションは,XLinkで方向付けられていないたどりを実行してもよい。例えば,リンク検査の処理は,資源のすべての利用可能な対をたどるかもしれない。

制約 弧に重複はない。

各々のarc型要素は,同じ拡張リンクの中の他のarc型要素のためのfrom値及びto値を(それぞれ)繰り返すことがないfrom値及びto値の対をもたなければならない。すなわち,リンクの中の各対は,一意でなければならない

例 arc型要素の宣言及びインスタンス

次に,arc型要素のための宣言の集合を参考として示す。

<!ELEMENT go EMPTY>
<!ATTLIST go
  xlink:type      (arc)           #FIXED "arc"
  xlink:arcrole   CDATA           #IMPLIED
  xlink:title     CDATA           #IMPLIED
  xlink:show      (new
                  |replace
                  |embed
                  |other
                  |none)          #IMPLIED
  xlink:actuate   (onLoad
                  |onRequest
                  |other
                  |none)          #IMPLIED
  xlink:from      NMTOKEN         #IMPLIED
  xlink:to        NMTOKEN         #IMPLIED>

次に,これらの宣言を使用するXML要素がどのようになるかを示す。

<go
  xlink:from="student62"
  xlink:to="PatJonesGPA"
  xlink:show="new"
  xlink:actuate="onRequest"
  xlink:title="Pat Jones's GPA" />
<go
  xlink:from="CS-101"
  xlink:arcrole="http://www.example.com/linkprops/auditor"
  xlink:to="student62"
  xlink:show="replace"
  xlink:actuate="onRequest"
  xlink:title="Pat Jones, auditing the course" />
<go
  xlink:from="student62"
  xlink:arcrole="http://www.example.com/linkprops/advisor"
  xlink:to="prof7"
  xlink:show="replace"
  xlink:actuate="onRequest"
  xlink:title="Dr. Jay Smith, advisor" />

5.1.4 拡張リンク,位置指定子及び弧のための表題(title型要素)

extended型要素,locator型要素及びarc型要素は,title属性(詳細については5.5 意味属性(role,arcrole及びtitle)を参照)をもってよい。しかし,それらは,一連の一つ以上のtitle型要素ももってよい。それら要素は,例えば,人間が読むことができるラベル情報が更なる要素マーク付けを必要とする場合,又は複数の表題が必要となる場合に対して役に立つ。title型要素を使用する一つの共通の動機には,国際化及び現地化の考慮がある。例えば,表題のマーク付けは,双方向性の文脈又は東アジアの言語で必要かもしれないし,複数の表題は,一つの表題の異なる自然言語の版に対して必要かもしれない。

表題のためのXLink要素は,XLink名前空間の中の,値が"title"であるtypeと呼ばれる属性をもった任意の要素とする。

title型要素は,任意の内容をもってよいtitle型要素が入れ子になったXLink要素を含む場合には,それら含まれた要素は,その表題を含む親リンクとのXLink指定の関係をもたない。title型要素が親に対してextended型要素,locator型要素,又はarc型要素以外のものをもつ場合には,そのtitle型要素は,XLink指定の意味をもたない。

例 title型要素の宣言及びインスタンス

次に,title型要素のための宣言の集合を参考として示す。要素は,xml:lang属性を与えられている。この属性は,どの表題を表示するかを決定する際に,サーバの設定又は他の文脈情報と結合して使用してもよい

<!ELEMENT advisorname (name)>
<!ATTLIST advisorname
  xlink:type      (title)         #FIXED "title"
  xml:lang        CDATA           #IMPLIED>

<!ELEMENT name (honorific?, given, family)>
<!-- Further subelement declarations for names -->

次に,これらの宣言を使用するXML要素がどのようになるかを示す。

<advisor xlink:href="profs/jaysmith7.xml" ...>
  <advisorname xml:lang="en">
    <name>
      <honorific>Dr.</honorific>
      <given>Jay</given>
      <family>Smith</family>
    </name>
  </advisorname>
</advisor>

5.1.5 リンクベースの位置指定(特殊な弧の役割)

XLinkアプリケーションが始点資源から終点資源へとたどる場合,そのアプリケーションは,始点資源及びリンクの両方の位置指定を行う必要がある。これら二つの断片の位置を指定することは,外向きの弧の場合には,始点資源が,リンク付け要素それ自体か又はリンク付け要素の子となっているので,問題とはならない。しかし,内向きの弧及び第三の弧の場合には,Xlinkアプリケーションは,両方の断片を何らかの方法で見つけ出すことを可能にする必要がある。

課程状況の例では,拡張リンクは,学生及び課程を表現する遠隔資源の対を関連付けることができる。システムが,(例えば,利用者が,学生の出席している課程についての情報へのたどりを行うために学生の名前をクリックできるようにすることによって,)関係する情報へのたどりを提供するといった方法で,(人間の記述及び写真といった)"学生資源(student resource)"をロードし表示するために,システムは,その関連を含む拡張リンクの位置を指定し使用する必要がある。

リンクベースは,多くの関係するリンク付け要素を一緒に集めることによって、リンク管理をより容易にするために使用されることが多い。XLinkは,潜在的に関連するリンクベースにアクセスすることをXLinkアプリケーションに命令する方法を提供する。その命令は,(拡張リンクの中で明示されるか単純リンクの中で暗黙的に示されるかして,)arcrole属性に対して次の値をもつ弧指定の形式を取る。

http://www.w3.org/1999/xlink/properties/linkbase

制約 リンクベースは,XMLでなければならない。

この特殊な値をもつ弧の終点資源として指定されるリンクベースは,XML文書でなければならない

(XLinkアプリケーションは,付加的なリンクベースの位置を指定しそれを処理する他の方法を使用してもよい。)

リンクベースの弧の処理は,通常の弧の処理とよく似ているが,(リンクベースの弧の場合には,)たどりは終点資源(リンクベース)のロードを引き起こして後の使用ためにそのリンクを抽出するのであって,それを利用者に表示したり他の処理を実行したりするのではない点が異なっている。その処理は,XLinkアプリケーションが,利用者のオプションでリンクベースの弧のたどりを保留しなければならない点でも特殊になっている。

特に,リンクベースをロードする際には,XLinkアプリケーションは,始点資源が何であるかを見失わないようにすることが望ましい。その始点資源を含む文書がロードされリンクベースの弧のたどりが活性化されるときにはいつでも,アプリケーションは,リンクベースにアクセスしその内部で見出される拡張リンクを抽出することが望ましい。抽出された資源が,ある範囲又は文字列範囲といった完全なXML文書の一部の場合には,抽出された部分に完全に含まれるこれらの拡張リンクだけが,利用可能となることが望ましい

リンクベースの弧のたどりのタイミングは,その弧のactuate属性の値に依存する。例えば,値が"onLoad"の場合,リンクベースがロードされ,始点資源がロードされるとすぐにそのリンクが抽出される。リンクベースの弧のshow属性値は,無視されなければならない。これは,この場合には,たどりが表示を引き起こさないことによる。

リンクベースは,他のリンクベースの弧の始点資源としても有用なので,連鎖になっていてもよい。最初のリンクベースの弧を解釈するアプリケーションは,その連鎖の中で処理されるステップ数に制限をつけることを選択してもよい

アプリケーションは,リンクベースを処理した結果として取得される拡張リンクのリストを維持管理することが望ましいが,循環的な依存性が存在する場合には,重複する資源又はリンクを取得しないことが望ましい。XLink処理を容易にするために,文書作成者は,文書の最初のあたりにリンクベースの弧を定義しようとしてもよい

例 記述指定の注記

次に,リンクベースの弧を提供するという点で特殊化された拡張リンクのための宣言の集合を参考として示す。

<!ELEMENT basesloaded ((startrsrc|linkbase|load)*)>
<!ATTLIST basesloaded
  xlink:type      (extended)      #FIXED "extended">

<!ELEMENT startrsrc EMPTY>
<!ATTLIST startrsrc
  xlink:type      (locator)       #FIXED "locator"
  xlink:href      CDATA           #REQUIRED
  xlink:label     NMTOKEN         #IMPLIED>

<!ELEMENT linkbase EMPTY>
<!ATTLIST linkbase
  xlink:type      (locator)       #FIXED "locator"
  xlink:href      CDATA           #REQUIRED
  xlink:label     NMTOKEN         #IMPLIED>

<!ELEMENT load EMPTY>
<!ATTLIST load
  xlink:type      (arc)           #FIXED "arc"
  xlink:arcrole   CDATA           #FIXED "http://www.w3.org/1999/xlink/properties/linkbase"
  xlink:actuate   (onLoad
                  |onRequest
                  |other
                  |none)          #IMPLIED
  xlink:from      NMTOKEN         #IMPLIED
  xlink:to        NMTOKEN         #IMPLIED>

次に,これらの宣言を使用するXML要素がどのようになるかを示す。これは,指定文書がロードされる場合に,その文書への注記であるリンクベースが同様に自動的にロードされることが望ましく,指定文書の内部にあって,そのリンクベースの中で見出されるリンクの中の始点資源として役に立つ任意の領域を見えるようにするために,指定文書全体の再レンダリングを恐らく必要にする,ということを示している。

<basesloaded>
  <startrsrc xlink:label="spec" xlink:href="spec.xml" />
  <linkbase xlink:label="linkbase" xlink:href="linkbase.xml" />
  <load xlink:from="spec" xlink:to="linkbase" actuate="onLoad" />
</basesloaded>

次に,これらの宣言を使用するXML文書が,リンクベースのロードを要求されている場合に,どのようになるかを示す。今回は,始点資源は,"Click here to reveal annotations."("注記を見えるようにするためには,ここをクリックすること。")という文からなる。始点資源を先の例における場合と同じ文書全体とすると,利用者がたどりを活性化できるようにするためには,確認のために対話ボックスを表示するという振舞いが自然と思われる。

<basesloaded>
  <startrsrc
    xlink:label="spec"
    xlink:href="spec.xml#string-range(//*,'Click here to reveal annotations.')" />
  <linkbase xlink:label="linkbase" xlink:href="linkbase.xml" />
  <load xlink:from="spec" xlink:to="linkbase" actuate="onRequest" />
</basesloaded>

5.2 単純リンク(simple型要素)

定義 単純リンクとは,片方が局所であって他方が遠隔であるちょうど二つの資源を,局所資源から遠隔資源へと向かう弧を用いて,関連付けるリンクとする。このように,単純リンクは,常に,外向きのリンクとする。

単純リンクの目的は,等価な拡張リンクに対する簡便な短い記述とする。単一の単純リンク付け要素は,extended型要素,locator型要素, arc型要素,及びresource型要素の基本機能を結合する。

図5.4は,単純リンクの特徴を示す。この単純リンクは,一つの局所資源及び一つの遠隔資源を関連付け,局所資源から遠隔資源への単一のたどり弧を暗黙的に提供する。これは,例えば,クリックしたときに,学生についての情報へと導びかれるテキストの中に現れている学生の名前を表現できる。

Stylized Diagram of Simple Link 図5.4 単純リンクの様式付けられた図

例 拡張リンクを用いて行われた単純リンクの機能

単純リンクは,拡張リンクによって,近似的に次の方法で表現できる。

<studentlink xlink:type="extended">
  <resource
    xlink:type="resource"
    xlink:label="local">Pat Jones</resource>
  <locator
    xlink:type="locator"
    xlink:href="..."
    xlink:label="remote"
    xlink:role="..."
    xlink:title="..." />

  <go
    xlink:type="arc"
    xlink:from="local"
    xlink:to="remote"
    xlink:arcrole="..."
    xlink:show="..."
    xlink:actuate="..." />
</studentlink>

単純リンクは,(型及びラベル以外の)これらのすべての機能を単一の要素へと結合する。機能のこの部分集合だけを必要とする場合には,XLinkの単純リンク付け要素が,拡張リンク付け要素の代替として利用できる。単純リンクの(拡張リンクから)失われている機能は,次のとおり。

  • 任意個の局所資源及び遠隔資源を供給すること。

  • 遠隔資源から局所資源への弧を指定すること。

  • 表題を単一の固く結ばれた弧と関連付けること。

  • 役割又は表題を局所資源と関連付けること。

  • 役割又は表題を全体としてリンクと関連付けること。

単純リンクのためのXLink要素は,XLink名前空間の中の,値が"simple"であるtypeと呼ばれる属性をもった任意の要素とする。先の拡張リンクの単純リンクによる等価なものは,次のとおりとなる。

<studentlink xlink:href="...">Pat Jones</studentlink>

simple型要素は,任意の内容をもってよい。内容すべてを伴ったsimple型要素は,それ自体,その要素がresource型要素であるものとして,リンクの局所資源になる。simple型要素が入れ子にされたXLink要素を含む場合には,それら含まれる要素は,親リンクへのXLink指定の関係をもたない。simple型要素が内容をもたないことは可能とする。リンクが要求時にたどられると期待される場合には,対話的なXL

simple型要素は,実効的には,locator型要素から,位置指定子属性であるhref並びに意味属性であるrole及びtitleを取ってきてり,さらにarc型要素から,振舞い属性であるshow及びactuate並びに単一の意味属性であるarcroleを取ってくる。

simple型要素が位置指定子(href)属性値をもたないことはエラーではない。値が提供されない場合,リンクは,単にたどれないだけとする。そのようなリンクでも,例えば,XLink属性を用いて特性を資源と関連付けるために有用かもしれない。

例 simple型要素の宣言及びインスタンス

次に,simple型要素のための宣言の集合を参考として示す。

<!ELEMENT studentlink ANY>
<!ATTLIST studentlink
  xlink:type      (simple)        #FIXED "simple"
  xlink:href      CDATA           #IMPLIED
  xlink:role      NMTOKEN         #FIXED "http://www.example.com/linkprops/student"
  xlink:arcrole   CDATA           #IMPLIED
  xlink:title     CDATA           #IMPLIED
  xlink:show      (new
                  |replace
                  |embed
                  |other
                  |none)          #IMPLIED
  xlink:actuate   (onLoad
                  |onRequest
                  |other
                  |none)          #IMPLIED>

次に,これらの宣言を使用するXML要素がどのようになるかを示す。

..., and <studentlink xlink:href="students/patjones62.xml">Pat
Jones</studentlink> is popular around the student union.

5.3 XLink要素型属性(type)

XLink要素型を識別する属性は,typeとする。

制約 typeの値

type属性の値は,供給されなければならない。値は,"simple","extended","locator","arc","resource","title",又は"none"のうちのの一つでなければならない

type属性の値が"none"の場合,その要素は,Xlink指定の意味をもたず,いかなるXLinkに関係する内容又は属性も,その要素とのXLink指定の関係をもたない。

例 type属性の宣言

次に,simple型を意図した要素におけるtypeのための属性リスト宣言を参考として示す。

<!ATTLIST xlink:simple
  xlink:type      (simple)        #FIXED "simple"
  ...>

ある場合だけにXLink要素として利用する要素に対しては,宣言は,次のとおりとするのがよいかもしれない。この場合,文書作成者は,(typeの)値を,ある状況では"simple"に他の状況では"none"に設定する。"none"の使用は,XLinkアプリケーションがhref値の存在を検査することを避けるのを支援する際に役に立つかもしれない。

<!ATTLIST commandname
  xlink:type      (simple|none)   #REQUIRED
  xlink:href      CDATA           #IMPLIED>

5.4 位置指定子属性(href)

XLinkアプリケーションが遠隔資源(又は資源素片)を見つけることを可能にするデータを供給する属性は,hrefとする。それは,simple型要素で使用されてもよくlocator型要素で使用されなければならない

href属性の値は,[IETF RFC 2396]で定義されたとおりのURI参照でなければならないか,又は次に示されるエスケープ手続きを適用した後にURI参照を生じなければならない。その手続きは,URI参照をURI解決器に渡すときに,適用される。

XMLで許されていても,URI参照では許されない文字がある。許されない文字は,すべての非ASCII文字,及び[IETF RFC 2396]の2.4で一覧として示された除外された文字とする。ただし,番号記号(#)及びパーセント記号(%),並びに[IETF RFC 2732]で再び許可された角括弧文字は除外され,使ってもよい。許されない文字は,次のとおりにエスケープしなければならない

  1. 各々の許されない文字は,1バイト以上としてのUTF-8 [IETF RFC 2279]に変換する

  2. 一つの許されない文字に対応するいかなるバイトも,URIエスケープ機構によってエスケープされる。すなわち,各バイトは,%HHに変換される。ただし,HHはそのバイト値の16進記法とする。

  3. 元の文字は,結果として生じる文字の列によって置き換えられる。

値がURI参照であることをアプリケーションが検査することは実用的でないので,これに関しては,この規定は,[IETF RFC 2396]に従い,XLinkアプリケーションにそれらの適合性要件を課すことはしない。

URI参照が相対的な場合には,使用する前に,その絶対的なURI参照を[XML Base]の手法によって,計算しなければならない

XML資源への位置指定子に対して,(存在する場合には,)URI参照内で使用される素片識別子のフォーマットは,XPointer規定[XPTR]によって規定される。

例 href属性の宣言

次に,simple型を意図した要素におけるhrefのための属性リスト宣言を参考として示す。

<!ATTLIST simplelink
  xlink:href      CDATA           #REQUIRED
  ...>

5.5 意味属性(rolearcrole及びtitle)

リンクの文脈内にある資源の意味を記述する属性は,rolearcrole及びtitleとする。role属性は,extended型要素,simple型要素,locator型要素及びresource型要素で使用してもよいarcrole属性は,arc型要素及びsimple型要素で使用してもよいtitle属性は,要素のこれらの型のすべてで使用してもよい

role属性又はarcrole属性の値は,[IETF RFC 2396]で定義されるとおりにURI参照でなければならない。ただし,使用されるURI方式が相対的及び絶対的の両方の形式をもつことを許される場合には,URI部分は絶対的でなければならないとする。URI参照は,意図した特性を記述する何らかの資源を識別する。値が供給されない場合,特別な役割の値を推論しないほうがよい。これらの属性値における許されないURI参照文字は,5.4 位置指定子属性(href)で示されるとおりに,特別に符号化されなければならない

title属性は,role属性又はarcrole属性と同様に,人間が読むことができる形式でリンク又は資源の意味を記述するために使用される。(しかし,5.1.4 拡張リンク,位置指定子及び弧のための表題(title型要素)も参照。)値はオプションとする。値が供給される場合は,それは,資源を記述する文字列を含むことが望ましい。この情報の使用は,行われている処理の型に大いに依存する。例えば,視覚に異常のある利用者が使用するアプリケーションに対して表題を利用可能にするために,リンクの表を作成するために,又は利用者がマウスポインタを始点資源の上にのせるときに現れるヘルプテキストを表示するために使用してもよい。 .

例 role属性及びtitle属性の宣言

次に,simple型を意図した要素におけるrole及びtitleのための属性リス宣言を参考として示す。

<!ATTLIST simplelink
  ...
  xlink:role      CDATA           #IMPLIED
  xlink:title     CDATA           #IMPLIED
  ...>

次に,arc型を意図した要素におけるarcrole及びtitleのための属性リスト宣言を参考として示す。

<!ATTLIST go
  ...
  xlink:arcrole   CDATA           #IMPLIED
  xlink:title     CDATA           #IMPLIED
  ...>

5.6 振舞い属性(show及びactuate)

振舞い属性は,show及びactuateとする。それらは,simple型要素及びarc型要素において使用してよいsimple型要素で使用される場合には,たどりのための振舞いの意図を,そのリンクの単一の遠隔終点資源へと伝える。arc型要素で使用される場合には,たどりのための振舞いの意図を,その弧によって指定されるあらゆる終点資源へと伝える。

show属性及びactuate属性は,必す(須)ではない。それらが使用される場合には,適合するXLinkアプリケーションは,それらの属性に5.で規定される取扱いを与えることが望ましい。この取扱いに対しては厳しい要件("しなければならない"と規定されているもの)は存在しない。これは,ブラウザなどの対話的アプリケーションに対して意味のあるものは,ロボットなどの非対話的アプリケーションに対しては意味がないことが多いことによる。しかし,すべてのアプリケーションは,指定された振舞いを無視するという示唆された方法を,異なる方法を選択する前に,考慮することが望ましい

例 show属性及びactuate属性の宣言

次に,simple型を意図する要素におけるshow及びactuateのための属性リスト宣言を参考として示す。

<!ATTLIST simplelink
  xlink:type      (simple)        #FIXED "simple"
  ...
  xlink:show      (new
                  |replace
                  |embed
                  |other
                  |none)          #IMPLIED
  xlink:actuate   (onLoad
                  |onRequest
                  |other
                  |none)          #IMPLIED
  ...>

リンクベースリストの中のarc型要素に出会うアプリケーションは,他の値を設定されていてもshow="none"及びactuate="onLoad"と指定されているものとして,その要素の振舞い属性を取り扱わなければならない

5.6.1 show属性

show属性は,始点資源からのたどり上にある終点資源の望ましい表示を伝えるために使用する。

制約 showの値

show属性に対して値が供給される場合には,次の値,"new","replace","embed",及び"other"の一つでなければならない

適合XLinkアプリケーションは,show値に対して,次の取扱いを適用することが望ましい

"new"

終点資源へとたどるアプリケーションは,新しいウィンドウ,フレーム,枠,又は他の意味のある表示文脈の中に,その資源をロードすることが望ましい。これは,次のHTML素片によって達成される効果と類似する。

<A HREF="http://www.example.org" target="_blank">...</A>

"replace"

終点資源へとたどるアプリケーションは,始点資源がロードされたのと同じウィンドウ,フレーム,枠,又は他の意味のある表示文脈の中に,その終点資源をロードすることが望ましい。これは,次のHTML素片によって達成される効果と類似する。

<A HREF="http://www.example.org" target="_self">...</A>

"embed"

終点資源へとたどるアプリケーションは,始点資源の表示の位置にその表示をロードすることが望ましい。これは,次のHTML素片によって達成される効果と類似する。

<IMG SRC="http://www.example.org/smiley.gif" ALT=":-)">

始点資源の表示は,通常は,文書全体からは構成されない。文書のルート要素が単純リンクの場合だけ,その表示は,文書全体とする。このように,埋込みは,通常は,置換えとは異なる効果をもつ。

HTMLのIMG要素に対するのと同じに,埋込みは,関連する資源の表示だけに影響する。すなわち,埋込みは,始点資源の永久的な変換を指示しない。言い換えると,埋め込まれたXLinkを処理する場合,リンクの終点資源をスタイル化した結果は,それが埋め込まれた資源をスタイル化した結果にマージされる。対照的に,XInclude要素[XInclude]などの構成要素を解決する場合,元のXMLは,実際には,参照される内容を含むように変換される。

適合XLinkアプリケーションの振舞いは,XMLに基づく([IETF RFC 2376]又は[IETF I-D XMT])終点資源を埋め込む場合,この規定のこの版では定義しない。

埋め込まれた資源の表示は,アプリケーション依存とする。

"other"

終点資源へとたどるアプリケーションの振舞いは,この規定によって制約されない。そのアプリケーションは,適切な振舞いを決定するために,リンクの中に存在する他のマーク付けを探すことが望ましい

"none"

終点資源へとたどるアプリケーションの振舞いは,この規定よって制約されない。そのアプリケーションが適切な振舞いを決定することを支援する他のマーク付けは存在しない。

資源の様々な位置に一連の文字列が並んでいるように,始点資源又は終点資源が複数の隣り合わない位置(にあるもの)から成る場合,アプリケーションの振舞いは,制約されない。(XML文書の一部の選択についての詳細な情報については,[XPTR]を参照すること。)

備考  隣接しない終点資源をもつアプリケーションの振舞いには,各位置を強調する,各資源へと導く別々の弧が存在するものとして利用者が位置を選択できる対話ボックスを生成する,表示のためにすべての位置の内容を連結する,などが含まれる可能性があるかもしれない。隣接しない始点資源をもつアプリケーションの振舞いは,連結及び一つの単位としてのレンダリングを含むかもしれないし,又は隣接する部分の各々から出る一つの弧を生成するかもしれない。

5.6.2 actuate属性

actuate属性は,始点資源から終点資源へのたどりの望ましいタイミングを伝えるために使用する。

制約 actuateの値

actuate属性に対して値が供給される場合には,それは,"onLoad","onRequest","other",及び"none"の値のうちの一つでなければならない

適合XLinkアプリケーションは,actuateの値に対して次の取扱いを適用することが望ましい

"onLoad"
アプリケーションは,始点資源をロードしたらすぐに終点資源へとたどることが望ましい。これは,利用者エージェントが画像を表示するように構成されている場合に,次のHTML素片によって通常達成される効果に類似する。

<IMG SRC="http://www.example.org/smiley.gif" ALT=":-)">

振舞いがshow="replace" actuate="onLoad"に設定されている封数の弧を単一の資源が含む場合,アプリケーションの振舞いは,XLinkによって制約されない。

"onRequest"

アプリケーションは,たどりを目的として誘発される(始点資源の)ロード後のイベント(の発生)に際してだけ,始点資源から終点資源へとたどることが望ましい。それらイベントの例は,利用者が始点資源の表示をクリックするとき,又はソフトウェアモジュールが切替えに先行するカウントダウンを終了するとき,であるかもしれない。

"other"

終点資源へとたどるアプリケーションの振舞いは,この規定によって制約されない。アプリケーションは,適切な振舞いを決定するためにリンクの中に存在する他のマーク付けを探すことが望ましい

"none"

終点資源へとたどるアプリケーションの振舞いは,この規定によって制約されない。アプリケーションが適切な振舞いを決定するのを支援するような他のマーク付けは存在しない。

5.7 たどり属性(labelfrom及びto)

たどり属性は,labelfrom及びtoとする。label属性は,resource型要素及びlocator型要素において使用してよいfrom属性及びto属性は,arc型要素において使用してよい

制約 labelfrom及びtoの値

label属性,from属性又はto属性の値は,NCNameなければならないfrom属性又はto属性に対して値が供給される場合,その値は,arc型要素と同様に,同じextended型要素の内部の直接の子として現れるlocator型要素又はresource型要素におけるlabel属性のための同じ値に一致しなければならない