#?SuikaWiki/0.9

[1] [[HTML]] [[文書]]中の[[相対URI]]は、
<IW:HTML4:"struct/links.html#resolving-relative-uris">
によりますと、次の優先順序で決定される[DFN[[[基底URI]]]]
によって[[解決]]します。

= [CODE(HTMLe)[[[base]]]] 要素があれば、
その [CODE(HTMLa)[[[href]]]] 属性の値
= [[HTTP]] の[[頭欄]]などのプロトコルの解釈で得られる値があれば、それ
= 現在の文書の URI
= 以上で基底 URI が決定できない場合には、
その HTML 文書は誤っていると考えられる

なお、 [CODE(HTMLe)[base]] 属性の
[CODE(HTMLa)[href]] 属性は[[絶対URI]]
とすることになっています。

[2] 例外的に、 [CODE(HTMLa)[[[codebase]]]]
属性がある要素の特定の属性では、
URI 参照を解決する際には、 [CODE(HTMLa)[codebase]]
属性があればそれを、なければ文書の基底
URI を使います。

[CODE(HTMLa)[codebase]] 属性の影響する属性:
- [CODE(HTMLe)[[[object]]]] 要素
-- [CODE(HTMLa)[[[archive]]]] 属性
-- [CODE(HTMLa)[[[classid]]]] 属性
-- [CODE(HTMLa)[[[data]]]] 属性
- [CODE(HTMLe)[[[applet]]]] 要素
-- [CODE(HTMLa)[[[archive]]]] 属性
-- [CODE(HTMLa)[[[code]]]] 属性
-- [CODE(HTMLa)[[[object]]]] 属性


[3]
[CODE(HTMLe)[base]] 要素は [CODE(HTMLe)[[[head]]]] 要素内の他の参照を持つ要素より前に来ないといけないことになっています。ところが、 [CODE(HTMLe)[head]] 要素には [CODE(HTMLa)[[[profile]]]] 属性にはあって、その中に URI を入れることができます。
[CODE(HTMLa)[profile]] 属性には相対 URI 参照は使わない方が安全です。

[3] [[XHTML]] で [CODE(HTMLe)[base]] 要素を使ったときに、 XHTML 以外の語彙にどのような影響が出るのかは分かりません。危険ですから使わないほうがいいでしょう。

また、 [CODE(XMLa)[[[xml]]:[[base]]]] 属性は、対応している [[XHTML1]] [[UA]] はどれだけあるか分かりませんし、 [CODE(HTMLe)[base]] 要素がどう影響するか分かりませんから、使わないほうがいいでしょう。
([[名無しさん]])
