* [CODE(HTMLe)[head]] 要素 [CODE(HTMLa)[profile]] 属性 (HTML, XHTML 1) [15] [[HTML]] の [CODE(HTMLe)[[[head]]]] 要素の [DFN[[CODE(HTMLa)[profile]] [[属性]]]]は、 [[プロファイル]] [WEAK[([[メタ情報]]の名前付き辞書)]] を参照するために使うことができます。 プロファイルについて詳しくは[CITE[[[HTMLメタ情報プロファイル]]]]をご覧下さい。 [33] 仕様書: - [[HTML 4]] -- [CODE(HTMLe)[[[head]]]] 要素 [CODE(HTMLa)[[[profile]]]] 属性 -- [CSECTION[Meta data profiles]] - [XMDP] [CITE[XMDP: Introduction and Format Description]] [34] 値は[[空白]]で分離した一つ以上の [[URI参照]]の並びで、 大文字・小文字が区別されます。但し、二つ目以降の URI 参照は無視されます。詳しくは >>3-14 を参照。 [16] 実際には [CODE(HTMLe)[[[head]]]] 要素の属性というよりは文書全体を通した属性とする方が適切であるので、 [[XHTML 2]] では [CODE(HTMLe)[[[html]]]] 要素の属性になります。 [17] ここで指定したプロファイルは、すべての [CODE(HTMLe)[[[meta]]]] 要素, [CODE(HTMLe)[[[link]]]] 要素に適用されます。 HTML 4 ではプロファイルは最初の1つの URI 参照しか意味を持ちませんから、そのプロファイルですべてのメタ・データ特性を定義しないといけないことになります。 [30] [CITE[Welcome to GMPG]] ([[名無しさん]]) [[#comment]] ** A URI or URIs? - [3] [[HTML 4]] 本文では、値は複数指定できる (最初の1つしか意味は持たないが。) と明記されています: ''The global structure of an HTML document'' - [4] しかし [[DTD]] の [CODE(HTML)[%URI;]] の注釈は、 ''a'' URI になっています: ''HTML 4 Document Type Definition'' - [5] [CODE(HTML)[%URI;]] に対応する本文の説明は ''URIs'' になっていますが、複数 URI ではなく指定できる値の集合として複数形になっていると思われます (他の型や属性との関係上。): ''Basic HTML data types'' - [6] 意図的なのか誤りなのかは不明ですが、本文ではっきり複数書けると明記されていますから、 DTD が間違いの可能性が高いでしょう。 - [7] DTD の内容はほぼそのまま XHTML 1.0, XHTML m12n に受け継がれていますから、同様の問題があります。 XHTML 1 は要素の具体的定義は HTML4 参照でして、仕様書に全く明記されてないのが更に問題。 - [8] XHTML 2.0 (WD) では値の定義が ''URI'' とは別の ''URIs'' に改められているので、この問題は解決しそうです。 - [9] >>6-7 HTML4 にはないが XHTML には [CODE(HTML)[%URIs;]] 系のものがあるんだから、それを参照していないのは問題だよなあ [14] >>3-9 属性値は空白分離の URI の並びだけど、 HTML 4 では最初のものだけが意味を持つと書いてあります。 複数個の URI が書かれたときの解釈は将来の版で規定する (かもしれない) ということで、 このようなごちゃごちゃしたことになっているのでしょう。 - HTML 4 適合 UA は一つ以上の URI 参照の並びとみなすが、 意味解釈時には最初のもの以外は捨てる。 - HTML 4 文書の著者は URI 参照を一つだけ書く。 - HTML 4 妥当性検証器は複数個の URI 参照があっても妥当とするが、意味がないと警告する。 が適当な対処だと思われます。 [25] ''ちょっとしたメモ - 困ったちゃんのprofile属性'' これと同じ話。 ([[名無しさん]] [WEAK[2004-03-18 01:10:42 +00:00]]) [35] 複数の URI 参照が認められるとすると、 相互の関係が問題になってきます。 XMDP [SRC[XMDP]] は、 HTML 4 が最初の URI 参照だけを使用すると規定していることから、 最初の URI 参照のプロファイルが一番優先度が高く、 最後の URI 参照のプロファイルが一番低いと解釈する [WEAK[(同じ語彙が複数のプロファイルで定義されていれば、最初の方のものとみなす)]] ことを提案しています。 [36] HTML 4.0 で [CODE(HTMLe)[[[object]]]] 要素の [CODE(HTMLa)[[[archive]]]] 属性が [CODE(SGML)[%[[URI]]]] なのは間違いで、 複数の URI 参照を書けるとして HTML 4.01 で [CODE(SGML)[[[CDATA]]]] に修正されました [SRC[HTML 4.01 A.1.1.14]]。 [CODE(HTMLa)[profile]] 属性も同様に間違いで見落としただけの可能性があります。 ([[名無しさん]] [sage]) [37] [[Gecko]] の [[DOM]] で [CODE(HTMLe)[[[head]]]] 要素の [CODE(DOMa)[[[profile]]]] [[DOM]] [[属性]]を取得すると[[絶対URI参照]]が得られますが、 [[間隔]]は [CODE(URI)[%20]] になります。 どうやら [[Gecko]] は [Q[a URI]] として実装しているようです。 [[WinIE 6]] は [CODE(DOMa)[[[profile]]]] [[DOM]] [[属性]]で[[要素属性]]の値が得られるのでどう考えているのかは分かりません。 ([[名無しさん]] [WEAK[2005-05-07 05:56:20 +00:00]]) [38] [[Opera 8]] も [[WinIE 6]] と同じ結果。 ([[名無しさん]] [WEAK[2005-05-07 05:57:47 +00:00]]) [39] [[Bjoern Hoehrmann]]が、いつまで種々の問題を放置しておく気だよと''[[TAG]]の''公開[[メイリング・リスト]]で指摘しました。 ;; [CITE@en[The xhtml:onkeypress architecture]] , それに対して[[Steven Pemberton]]は、問題は解決したけど追跡システムで閉じておくのを忘れただけだと書きました。 ;; [CITE@en[Re: The xhtml:onkeypress architecture]] , そしてその後、追跡システムには > The datatype for the profile was indeed changed to URI in M12N on purpose, specifically so that it would be possible to use it as a possible means to identify compound document profiles in the future. > [CODE(HTMLa)@en[[[profile]]]]の[[データ型]]は確かに[[URI]]に変更されたが、これは特に将来[[複合文書]]プロファイルの識別に使えるようにと考えてのことだ。 というメモが書かれたようです。 ;; [CITE[HTML Working Group Voyager Issue Tracking System - Modularization-abstractions/8168]] ;; [[Bjoern Hoehrmann]]の[CITE@en[Why profile="" allows only one URI]] ;; 参考: [CITE[HTML Working Group Voyager Issue Tracking System - HTML-4.01/6383]] , [CITE[HTML Working Group Voyager Issue Tracking System - Modularization-text/8161]] ([[名無しさん]] [WEAK[2006-02-15 08:18:17 +00:00]]) [40] のコメントは変わっていませんが、 [[XHTML m12n 1.1]] [[LC]] [[WD]] は [CODE@en[[[URIs]]]] に変えちゃってます。 [CITE[XHTML Modularization 1.1 - XHTML Abstract Modules]] ([[名無しさん]] [WEAK[2006-07-07 15:25:28 +00:00]]) [[#comment]] ** プロファイル [18] によれば、利用者エージェントは [CODE(HTMLa)[profile]] URI を2種類の方法で利用できます。 :大域固有名:[CODE(HTMLa)[profile]] URI を名前として扱い、そのプロファイル [WEAK[(別にそれを URL として資源取り出しに使う必要はない。)]] の知識を使って何かするとか。 [[XML名前空間]]の[[名前空間名]]のような使い方。 :[[リンク]]:[CODE(HTMLa)[profile]] URI を資源取り出しに使って、その実際の定義に基づいて何かするとか。 [19] [CITE[[[HTMLメタ情報プロファイル]]]]の項もご覧下さい。 [[#comment]] *** 相対 URI 参照 [20] HTML 4 では、[[相対URI参照]]が認められるのかどうか明記されてはいませんが、 HTML 4 における「URI」の定義からすると認められるとみなすのが適当でしょうね。 実際上は [[XML名前空間]]の[[名前空間名]]と同じように、 相対 URI 参照は使わないことにした方が都合がいいかもしれません。 [WEAK[(たとえば [[CSS]] の[[選択子]]に使うこととか考えると。)]] [21] 相対 URI 参照が使われていたとして、 何を基底としたらよいのでしょう。 [[HTTP]] や [[MIME]] のような上位プロトコルの情報はもちろん (必要なら) 使うとして、 あるいは [[XML]] 応用であれば (その定義に依っては) [CODE(XML)[[[xml]]:[[base]]]] 属性を考慮してもよいかもしれませんが、 それよりもなによりも、 HTML の [CODE(HTMLe)[[[base]]]] 要素の影響がどうなるか気になるところ。 [27] [CODE(HTMLe)[base]] 要素の規定 () には、 [CODE(HTMLa)[profile]] への適用を妨害するものは何もないようです。 但し、[[相対URI参照]]よりも [CODE(HTMLe)[[[base]]]] 要素による[[基底URI]] の定義は[[文書順]]で先に無ければならないことになっていますが、 [CODE(HTMLe)[base]] 要素を [CODE(HTMLe)[head]] 要素よりも前に持ってくることは不可能です。 [[#comment]] *** 実際に使われている Profile [1] [CITE[[[HTMLメタ情報プロファイル]]]]に移動しました。 * profile 引数 (媒体型 application/xhtml+xml) - [23] [CODE(MIME)[[[application/smil+xml]]]] == [CODE(MIME)[[[application/smil]]]] にも XHTML に倣って [CODE(MIME)[profile]] 属性が用意されています。 [WEAK[(この前その [[I-D]] 和訳したのですけど、うっかり削除してしまいました。)]] [29] いくらつなぎ規格だからと言っても、提案している当の W3C の規格 (XHTML 1.0 とか 1.1 とか SMIL 2.0 とか SMIL Basic とか) の [CODE(MIME)[profile]] URI が規定されていないあたり、やる気がまったく感じられませぬ。 ([[名無しさん]]) [[#comment]] ** 実例 [13] [CODE(URI)[http://www.wapforum.org/xhtml]] : [[XHTML Mobile Profile]] ( 7.2 参照) [12] : の。 [[#comment]] * メモ