水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > CDATA 中の ETAGO

CDATA 中の ETAGO

2007年5月23日(水曜日)

CDATA 中の ETAGO

ockeghem(徳丸浩)の日記 - XSS対策:JavaScriptなどのエスケープ (d.hatena.ne.jp)」を読んで気づいたのですが、HTML4.01 B.3.2 Specifying non-HTML data (www.w3.org)にはこんな事が書いてあるのですね。

When script or style data is the content of an element (SCRIPT and STYLE), the data begins immediately after the element start tag and ends at the first ETAGO ("</") delimiter followed by a name start character ([a-zA-Z]);

内容モデル CDATA のところに ETAGO を書いても、直後に名前開始文字 (LCNMSTRT や UCNMSTRT) が来なければ大丈夫と言っているように読めますが……エンプティタグを使うこともできるはずなので、これだと間違いくさいですね。しかし Errata (www.w3.org) には出ていない模様。うーむ。

※参考: http://bakera.jp/bug/empty-tags.html は Valid です。

もっとも、続けてこう書いてあるので……

note that this may not be the element's end tag. Authors should therefore escape "</" within the content.

これで ETAGO 自体駄目だぞとフォローしている、という解釈でも良いのかも。

関連する話題: HTML / SGML

最近の日記

関わった本など