[1] [[HLink]] の [DFN[[CODE(XMLe)[[[hlink]]]]]] [[要素]]は、[[リンク]]である[[要素]]と、
[[リンク]]とその[[要素]]の[[属性]]との関係を記述する[[要素]]として提案されていたものでした。

[11] [[HLink]] および [[XHTML2 WG]] が支持を集められず解散してしまい、この[[要素]]もほとんど使われていません。

* 仕様書

[REFS[
- [2] [CITE@en[HLink]] ([TIME[2010-12-16 20:58:08 +09:00]] 版) <http://www.w3.org/TR/hlink/#s_hlink-element>
]REFS]

* 所属

[7] この[[要素]]の[[名前空間]]は [CODE(URI)@en[[[http://www.w3.org/2002/06/hlink]]]] でした [SRC[>>2]]。

[8] この[[要素]]は [[The HLink Module]] に所属していました [SRC[>>2]]。

* 文脈

[9] この[[要素]]は [CODE(XMLe)@en[[[hlinks]]]] [[要素]]の[[内容]]で使用できることになっていました [SRC[>>2]]。

[3] >>1 のように HLink 文書内で使う場合のほかに、 [[HTML]]
に埋め込む場合には [[head]] 要素内で使う例が
''Usage'' <http://www.w3.org/TR/hlink/#s_usage> にあります。
但し要検討とされています。

個人的には、 [CODE(HTML)[head]] 要素内で使うのであれば直接 [CODE(XML)[hlink]]
要素を複数入れるよりは、 [CODE(XML)[hlinks]] 要素を1つ [CODE(HTML)[head]]
要素に入れて、その下に必要なだけ [CODE(XML)[hlink]] 
要素を入れた方が構造がすっきりすると思っています。

[4]
>>3 しかし [CODE(XMLe)[hlink]] 要素を複数個必要とすることはあまりなさそう。

[5]
あっても2,3個程度で。

* 属性

[12] 適用対象となる[[要素]]を識別するための[[属性]]として、
[CODE(XMLa)@en[[[namespace]]]] と [CODE(XMLa)@en[[[element]]]]
が定義されていました。前者は[[名前空間URL]]を指定するもので[[必須]]、
後者は[[名前]]であれば[[要素]]を表し、[CODE[[[*]]]] であれば定義されている[[要素]]すべてを表し、
[[属性]]が指定されていなければ[[大域属性]] (当該[[名前空間]]に所属する[[属性]])
についての記述であることを表すとされていました。 [SRC[>>2]]

;; [13] 複数の [CODE(XMLe)@en[[[hlink]]]] [[要素]]の指定で重複が生じることがありますが、
それをどう処理するべきなのかは不明です。

[10] それ以外には、[[リンク]]の性質を表す次の[[属性]]が定義されていました [SRC[>>2]]。

- [CODE(XMLa)@en[[[locator]]]]: [[リンク先]]
- [CODE(XMLa)@en[[[effect]]]] = [CODE[[[new]]]], [CODE[[[replace]]]],
[CODE[[[embed]]]], [CODE[[[submit]]]], [CODE[[[map]]]]: リンクの効果
- [CODE(XMLa)@en[[[actuate]]]] = [CODE[[[onLoad]]]], [CODE[[[onRequest]]]],
[CODE[[[onRequestSecondary]]]]: リンクの発動タイミング
- [CODE(XMLa)@en[[[replace]]]]: リンクが置換する対象
- [CODE(XMLa)@en[[[role]]]]: [[リンク]]の[[役割]] ([[リンク関係型]])
- [CODE(XMLa)@en[[[shape]]]]: [[画像マップ]]の図形
- [CODE(XMLa)@en[[[coords]]]]: [[画像マップ]]の座標
- [CODE(XMLa)@en[[[contentType]]]]: [[HTTP]] [CODE(HTTP)@en[[[Accept:]]]]
- [CODE(XMLa)@en[[[onSuccess]]]] = [CODE[[[processChildren]]]],
[CODE[[[ignoreChildren]]]]: 処理成功時の動作
- [CODE(XMLa)@en[[[onFailure]]]] = [CODE[[[processChildren]]]],
[CODE[[[ignoreChildren]]]], [CODE[[[warn]]]], [CODE[[[fail]]]]: 処理失敗時の動作

;; [17] [CODE(XMLa)@en[[[contentType]]]] [[属性]]は [[HTML]] の [CODE(HTMLa)@en[[[type]]]]
[[属性]]に由来するものと思われますが、 [[XHTML2]] 同様に [[HTML]]
の[[属性]]とは違って、[[ヒント]]ではなく [[HTTP]] [CODE(HTTP)@en[[[Accept:]]]]
[[ヘッダー]]の値として使われるものを指定することになっていました。

[15] 2002年版 [SRC[>>14]] では [CODE(XMLa)@en[[[contentType]]]]
[[属性]]は [CODE(XMLa)@en[[[mediaType]]]] [[属性]]でした。更に次の[[属性]]が定義されていました
[SRC[>>14]]。
- [CODE(XMLa)@en[[[from]]]]: [[XLink]] [CODE(XMLa)@en[[[xlink:from]]]]
- [CODE(XMLa)@en[[[to]]]]: [[XLink]] [CODE(XMLa)@en[[[xlink:to]]]]
- [CODE(XMLa)@en[[[arcrole]]]]: [[XLink]] [CODE(XMLa)@en[[[xlink:arcrole]]]]
- [CODE(XMLa)@en[[[label]]]]: [[XLink]] ([CODE(XMLa)@en[[[xlink:title]]]]?)
- [CODE(XMLa)@en[[[reverseRole]]]]

;; [18] [CODE(XMLa)@en[[[role]]]]、[CODE(XMLa)@en[[[reverseRole]]]]
は [[HTML]] の [CODE(HTMLa)@en[[[rel]]]]、[CODE(HTMLa)@en[[[rev]]]]
に相当するもののようです。2002年版に [[XLink]] の[[属性]]に相当するものが含まれているにも関わらず
[CODE(XMLa)@en[[[xlink:role]]]] が含まれていないのですが、
[[XHTML2 WG]] としては [[HTML]] の [CODE(HTMLa)@en[[[rel]]]] と [[XLink]]
の [CODE(XMLa)@en[[[xlink:role]]]] を同義と見なしていたということでしょうか。

;; [19] [[XHTML2 WG]] が後に [[XHTML2]] に追加する [CODE(XMLa)@en[[[role]]]] 
[[属性]]とは同名ですが意味が違うことにも注目です。何年か間が開いていますが、
両者に関連はあるのでしょうか。

[16] 2002年版 [SRC[>>14]] には[[フォーム提出]]にも拡張する構想があることが記載されています。

;; [21] [CODE(XML)@en[[[effect]]=[[submit]]]] は2002年版から既にありました。
[CODE(HTMLa)@en[[[method]]]] [[属性]]や [CODE(HTMLa)@en[[[enctype]]]]
[[属性]]に相当するものを追加するつもりだったのでしょうか? あるいは [[XForms]]
との何らかの統合を考えていたのでしょうか。2010年版までにその計画が削除されたのはなぜでしょうか。

[20] 2002年版では、 [CODE[[[@]]]] と[[属性名]]を連ねたものを指定すればその機能の指定は当該[[属性]]の値により、
それ以外ならそのままの値として解釈することになっていました [SRC[>>14]]。
2010年版では [CODE(XMLa)@en[[[locator]]]] [[属性]]と [CODE(XMLa)@en[[[locatorValue]]]]
[[属性]]のように [CODE[Value]] を後に付けた[[属性]]群が追加されていて、
前者なら[[属性名]]として解釈して当該[[属性]]の値により、
後者なら[[属性値]]そのものを使うことになっています [SRC[>>2]]。
両方指定された場合は、 [CODE[locator]] の方が採用されます [SRC[>>2]]。

* 内容

[6] [[内容]]は[[空]]です [SRC[>>2]]。

* 歴史

[REFS[
- [14] [CITE@en[HLink: Link recognition for the XHTML Family]] ([TIME[2002-09-13 07:11:51 +09:00]] 版) <http://www.w3.org/TR/2002/WD-hlink-20020913/>
- [22] ''HTML Working Group Voyager Issue Tracking System - HLink'' <http://hades.mn.aptest.com/cgi-bin/voyager-issues/HLink?user=guest>
]REFS]

[23] 属性値が実値と属性値参照の両者を含みうるという「magic attr」はみんなきもいと思っているようだ
[SRC[>>22]]。

[24] その結果 [CODE[Value]] [[属性]]に分離されたようです。