[2] [DFN[[[HTML+RDFa 1.1]]]] は、 [[HTML]] で [[RDFa]] を使う方法を規定した仕様の一つです。
現実にはあまり使われていません。
* 仕様書
[REFS[
- [1] [CITE@en[HTML+RDFa 1.1]] ([TIME[2013-08-20 15:49:04 +09:00]] 版)
]REFS]
* 文書の適合性
[6] 適合する[[文書]]のクラスとして、 [DFN[[[HTML+RDFa]]]] と [DFN[[[HTML+RDFa Lite]]]]
の2つが定義されています。前者は [[RDFa Core 1.1]]、後者は [[RDFa Lite 1.1]] を [[HTML]] と組み合わせたものです。
;; [7] 2章には両者の違いが明記されていませんが、4章に書いてあります。 (わかりにくい...)
[8] [[HTML+RDFa]]/[[HTML+RDFa Lite]] の[[文書]]には次の要件が課されています [SRC[>>1]]。
[FIG[
- [9] [[HTML 5.0]] で[RUBYB[必須]@en[mandatory]]とされたすべての要件に従わなければ[['''なりません''']]。
- [10] [[RDFa]] による [[HTML]] への拡張が[[妥当]]で[[適合]]していなければ[['''なりません''']]。
- [11] すべての [[HTML 5.0]] [[要素]]・[[属性]]は [[HTML 5.0]] に適合する形で、
[[RDFa]] [[属性]]は [[RDFa Core 1.0]] と [[HTML+RDFa 1.1]] に適合する形で使う[['''べきです''']]。
]FIG]
[12] >>9 は [[XHTML+RDFa]] からコピペ改変したのでしょうが、相変わらず「必須とされたすべての要件」
が何なのか不明です。 [[HTML5]] 仕様書には「mandatory」なる単語すら含まれていません。
>>9 があれば >>11 の前半はカバーできていそうなものですが、なぜ敢えて繰り返しているのか、しかもなぜ
>>11 では MUST でなく SHOULD となっているのかまったく謎です。 >>10 と >>11 も重複しているように思えます。
;; [13] そもそも [[HTML]] と [[RDFa]] の各仕様書とこの仕様書の残りの部分でそれぞれ適切に規定がなされていれば、
>>8 の要件自体敢えて繰り返す必要性がないはずですが・・・。
* 属性
[30] [DFN[[[HTML+RDFa Lite]]]] では、 [[RDFa Lite 1.1]] より
[CODE(HtMLa)@en[[[vocab]]]]、[CODE(HTMLa)@en[[[typeof]]]]、[CODE(HTMLa)@en[[[property]]]]、
[CODE(HTMLa)@en[[[resource]]]]、[CODE(HTMLa)@en[[[prefix]]]] 各[[属性]]をすべての[[要素]]で使うことができます。
また [CODE(HTMLa)@en[[[href]]]] と [CODE(HTMLa)@en[[[src]]]] は [[HTML5]] で既に認められている場所で使うことができます。 [SRC[>>1]]
[31] [DFN[[[HTML+RDFa]]]] では、 [[RDFa Core 1.1]] より
[CODE(HtMLa)@en[[[vocab]]]]、[CODE(HTMLa)@en[[[typeof]]]]、[CODE(HTMLa)@en[[[property]]]]、
[CODE(HTMLa)@en[[[resource]]]]、[CODE(HTMLa)@en[[[prefix]]]]、[CODE(HTMLa)@en[[[content]]]]、
[CODE(HTMLa)@en[[[about]]]]、[CODE(HTMLa)@en[[[rel]]]]、[CODE(HTMLa)@en[[[rev]]]]、
[CODE(HTMLa)@en[[[datatype]]]]、[CODE(HTMLa)@en[[[inlist]]]] 各[[属性]]をすべての[[要素]]で使うことができます。
また [CODE(HTMLa)@en[[[href]]]] と [CODE(HTMLa)@en[[[src]]]] は [[HTML5]] で既に認められている場所で使うことができます。 [SRC[>>1]]
;; [32] [CODE(HTMLa)@en[[[rel]]]] や [CODE(HTMLa)@en[[[content]]]] は [[RDFa Lite 1.1]]
に含まれていませんが、 [[HTML]] では一部の[[要素]]で [[HTML]] 本来の意味で使うことができます。
[[RDFa]] 側でそれを禁止してはいないようです。しかし [[RDFa処理器]]は Lite と Core
の区別がなくすべての [[RDFa]] [[属性]]を取り扱いますから、 [[RDFa Lite]] と普通の [[HTML]]
を使っているつもりでも、勝手に [[RDFa Core 1.1]] として解釈されてしまう場合があり得るということになります。
本当にそんなのでいいのでしょうかね。 [[RDFa Lite 1.1]] の項も参照してください。
[33] [[HTML5文書]]の [CODE(HTMLe)@en[[[body]]]] [[要素]]の中であって [CODE(HTMLa)@en[[[property]]]] [[属性]]がある
[CODE(HTMLe)@en[[[link]]]] や [CODE(HTMLe)@en[[[meta]]]] は[[フロー内容]]です。 [SRC[>>1]]
;; つまり [CODE(HTMLe)@en[[[body]]]] や [CODE(HTMLe)@en[[[div]]]] や [CODE(HTMLe)@en[[[li]]]] の中で使えることになります。
;; [37] なぜ [CODE(HTMLe)@en[[[body]]]] 内に限定されているのか謎です。 [[Atom]] の [CODE(XMLe)@en[[[content]]]]
[[要素]]の中や [[SVG]] の [CODE(XMLe)@en[[[foreignObject]]]] の中で [CODE(HTMLe)@en[[[body]]]]
を通さずに [[HTML]] が使われるときや[[文書]]に属さない時には使えません。また [[HTML5文書]]になぜか限定されているので、
[[HTML4]] や [[XHTML]] では使えないようですが、意図するところがまったく推測できません。
[34] [CODE(HTMLa)@en[[[property]]]] がある [CODE(HTMLe)@en[[[link]]]] [[要素]]には
[CODE(HTMLa)@en[[[rel]]]] [[属性]]はなくて構いません。 [SRC[>>1]]
[35] [CODE(HTMLa)@en[[[property]]]] がある [CODE(HTMLe)@en[[[link]]]] [[要素]]には
[CODE(HTMLa)@en[[[href]]]] [[属性]]はなくて構いません。 [SRC[>>1]]
[36] [CODE(HTMLa)@en[[[property]]]] [[属性]]がある [CODE(HTMLe)@en[[[meta]]]] [[要素]]には
[CODE(HTMLa)@en[[[name]]]]、[CODE(HTMLa)@en[[[http-equiv]]]]、[CODE(HTMLa)@en[[[charset]]]]
はなくて構いません。 [CODE(HTMLa)@en[[[content]]]] [[属性]]は必須です。 [SRC[>>1]]
* HTML と XHTML
[14] [[HTML+RDFa]] 仕様書では「XML モード」という未定義の用語が使われており、文脈からして [[HTML]]
と [[XHTML]] の違いのことを指しているようです。
[15] [[XML]] モードでない [DFN[HTML+RDFa 1.1 [RUBYB[文書]@en[document]]]]は [[MIME型]]
[CODE(MIME)@en[[[text/html]]]] を使う[['''べきです''']]。 [SRC[>>1]]
[16] [[XML]] モードの [DFN[XHTML5+RDFa 1.1 [RUBYB[文書]@en[document]]]]は [[MIME型]]
[CODE(MIME)@en[[[application/xhtml+xml]]]] を使う[['''べきです''']]。 [SRC[>>1]]
;; [17] なぜこれらが MUST でなく SHOULD なのか、他にどのような選択肢があるのかは謎です。
[38] [CODE(XMLa)@en[[[xmlns]]]] に関するびっくりする規定があります。 [CODE(XMLa)@en[[[xmlns]]]]
の項を参照してください。
* HTML の版
[23] [[HTML+RDFa]] 仕様書は[[文書]]にも[[利用者エージェント]]にも [[HTML 5.0]]
に適合することを要求していますが、なぜか [[HTML4]] にも (見出しを含め) 何度か言及しています。
その意図するところは不明瞭ですが、どうやら [[HTML4]] [[文書]]も [[HTML5]]
の[[構文解析器]]で処理できるものなので、対応範囲に含めているようです。
また、古い版の仕様書では [[HTML4]] の [[DTD]] に [[RDFa]] を追加したものも載っていたようです。
[24] こういうのを普通 [[HTML4]] に対応しているとは言わないと思いますが・・・。
[29] [[文書]]の適合性としては [[HTML5]] を要求していますが、妥当性の検証においては [[HTML4]]
にも [[RDFa]] の属性を追加することが求められています。 (それなら属性の妥当性のみ定義しておけばよく、
文書の適合性を規定する必要はなさそうなものですが・・・。)
* XHTML+RDFa の版
[27] [[RDFa]] の項を参照してください。
* 歴史
[3] [[HTML+RDFa]] の [[W3C勧告]] (>>1) は [[W3C Process]] の都合上、まだ [[W3C勧告]]になっていない [[HTML 5.0]]
と [[RDFa 1.1]] に依存した機能を[[参考]]としています。
;; [4] 技術的な内容が手続き上の理由で歪められてまで [[W3C勧告]]に急いでする理由は何でしょうね。
逆に内容を歪めるかスケジュールを遅らせるか選ばせる [[Process]] の存在価値は何でしょう。
;; [25] 処理モデルの一部分が[[規定]]ではなく[[参考]]だというのが何を表すのかは謎です。
その部分だけ実装しない、あるいはその部分だけ違った形で実装しても良いということでしょうか。
そのような実装を認めても、形式的には何ら問題ないかもしれませんが、実際には相互運用性を損なうだけで、
誰にとっても嬉しくないと思うのですが。
[REFS[
- [5] [CITE[HTML5-ImplementationReport - RDFa Working Group Wiki]] ([TIME[2013-06-13 21:01:58 +09:00]] 版)
]REFS]
;; [28] 処理モデルの章に文書の適合性の規定が一部混じっているなど、品質は相変わらずです。