[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:01787] Re: html でのコメント



おはようございます。やまぐち@あわぐもです。

なんか話題爆発ですが...。

<199902040412.NAA21194@xxxxxxxxxxxxxxxx> の、
   "[xyzzy:01783] Re: htmlでのコメント" において、
   "Masahito Henmi <henmi@xxxxxxxxxxxxx>"さんは書きました:

> htmlは知りませんが、XMLの仕様書には、コメント中に2つの連続した-は
> 使っちゃだめと書いてありました。
> 
> でも、 終わりは --> と書いてあったので、 -- でコメントの終わりとしては
> まずいのかも知れません。変なの ^^;

HTML 4.0の勧告を見ると、「<!」が開始記号、「--」がコメント開始記号、かつ、
コメント終了記号、「>」がマークt付け宣言終了記号です。「<!」と「--」の間に
は空白があってはいけないですが、「--」と「>」の間は良い、などと書いてあり
ます。

で、なんでこんななっているのかというと、DTDでコメントを書く場合、

<!ELEMENT PARAM - O EMPTY       -- named property value -->
                                ~~~~~~~~~~~~~~~~~~~~~~~~~~ここがコメント

となるからです。各パラメータにコメントを付けたりしたいときに使うのでしょう。

※Cで言えば

void func(int a /* hoge */,
          char b /* uge */)

ってな書き方ですね。

ただし、XMLではDTDのタグ内にコメントは書けないことになっています。だから、定義は
こんなんなってます。

  『Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'』

そんなわけで、SGML、HTMLとXMLではちょっと事情が異なります。XMLでは、書かれているように
「--」は含めてはいけません(「--->」で終わるのも駄目ですね)。


どっちにしろ、HTML4の勧告中には「--」をコメント内に入れることを避けるようにという
記述はありますが、コメントの厳密な定義はないです。実際にはブラウザの実装依存に
なりますから、HTMLを書く場合には、

・「<!--」と「-->」で囲む
・この中に「--」は書けない
・厳密には細かい話があるが、どのみちHTMLとしての厳密な決まりはない

と覚えておくのが一番間違いがないです。HTML4.0のXMLによる記述(*1)の
こともありますし。

*1) http://www.w3.org/TR/1998/WD-html-in-xml-19981205
  日本語訳はhttp://www.doraneko.org/xml/voyager/Overview.html
--
山口佳成【をゐなり】  E-Mail:yoshiaki@xxxxxxxxxxx
(YAMAGUCHI,Yoshiaki) NIFTY SERVE:GCD02060 ICQ UIN:5231160
PGP Fingerprint:85 97 59 54 31 EC 79 31 1F DA D5 49 65 40 84 0D

Index Home