このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

コメントアウトはやめてくれ

naoyaさんの「そのページが誰のものなのかを示す識別子を埋め込む仕様を考えています」に対する僕の反応の趣旨は、「HTML(XML)コメント内に意味のある情報を記述する」という選択肢は良くない、ということです。PIは「まだしもマシ」と引き合いに出しただけです(特に推奨はしない)。

その後いろいろあって結局、「続々 Hatena ID Auto-Discovery」の最後において、TrackBackTechnical Specificationコメントアウトに関するくだりを引用した後で:

"This is not a perfect solution, but it works as a temporary fix." だそう。これをよしとするかどうか、ってとこですね

とのこと。また、コメント案がぁー、、、

僕はそれを“よしとしない”わけだけど、現実的な事情からやむにやまれぬ場合でももう一工夫したいところです。

まずは、“よしとしない”理由ですが、コメントというのは、「誰が何のためにどんなフォーマットで何を書いているか」という判断がまったくできないってことです。本来無視されるべき存在だから当然のことです。

もしコメントに有意な情報を埋め込むと、処理系は文書中のすべてのコメントをパーズする必要があります。コメント内部がいかなる構文かは事前に予測できないので、トライアンドエラーで端から調べるしかありません。今回の例なら、コメント内のテキストをXMLパーザーに再度渡して、成功したらそれが目的のXMLデータかどうかを確かめる、ということになります。

「そういう処理をコーディングすりゃいい」「実行時負担はたいしたことない」ってのは、それ自体は間違いではありませんが、そういうアドホックなことをモジャモジャしないために、XML構文や名前空間があるのに、時計の針をまた逆に戻すのかー、と思うとホントに脱力しちゃうよ。

こういうことが続くと、「コメント内部の構文を構造化する」とか「すべての処理系はコメント内をパーズすべし」ってハナシになるんじゃないでしょうか? それって、いったい何なのよ?

もともとの"This is not a perfect solution, but it works as a temporary fix."って事情はよく理解できます。この時点では、「これ良くないよなー、やっちゃいけないと思う。けど、ホントにしょうがないのだ」という後ろめたい気持ちだったと思います。ですが、一度こういうことをやると、最初の「後ろめたい気持ち」は次の人には伝わりません。次の人々は、前例があるからと堂々とやるのですよ、望ましくないことを。

さて、それでも、やむにやまれぬとして許容するとして(許容したくないけど)考えましょう: 要素内容をコメントアウトする前例に、<script>や<style>があります(XMLではなくて古いSGML構文ならこれを合理化することもできます)。この例では、特定要素の内部にあるコメントということで、囲っている要素タグが「誰が何のためにどんなフォーマットで何を書いているか」を伝えています。というわけで、特定囲みタグの内部に限定して内容をコメントアウトして欲しいな。

もっとも、レガシーHTMLが前提だと、囲み要素を新設するのも困難(つうか、それをする意義が疑問)だから、Microformatsの多重マークアップ風に

<span class="embeddedMetainfo"><!-- 有意な内容 --></span>
とかでしょうね。

次の投稿に続いている