場をお借りして運営しています。多くのアイデアは、これらから頂戴したものです。そのような誤解から石川氏に迷惑がかからないようにお願いいたします。社内にインストールし、社内向けにゲートウェイサーヴィスを開始しました。その際、提供されているHTMLやPerlスクリプトなどに若干の手直しをしました。Perlスクリプトを解析し出したわけなんです。その結果は、あまり納得のいくものではありませんでした。厳密なチェックを目指していないので、結構お手軽に書かれています。それにしても、お手軽すぎてあまりにも多くの情報を捨ててしまっていますし、データ構造はほとんどないに等しく、ここの場面でこういうときはこうする、ああいうときはああする、といった場当たり的な処理の羅列に終始しています。関する情報は、<HTML>~</HTML>タグに関するものしか持っていません。抽象化されていないので、他への応用が利きません。終了タグを省略できる場合の処理もあまり正確ではありませんし、タグの要素として書くことを許されているタグに何があるのか、という情報は皆無です。一部<A>とヘディング<Hn>の入れ子関係をチェックしていたり、<LI>などのリスティング関係のタグをチェックしているくらいです。DTDの情報をうまく利用すれば、どのタグがどのタグ要素として許されるのか明白です。(1997/06時点の話なので、最新版は違うかも知れません)というような調子なので、しばらくは手直ししながら利用していましたが、そのうちに、好みに改造するのも手間だし、今後の拡張を正確に反映させていくにはそうとうな労力を要求されそうだと判断し、新規にHTMLチェッカを書き起こすことにしました。DTDぎちぎちのチェックをすると、ゆるやかなHTML評価をしている多くのWWWブラウザにとってはかえってありがた迷惑だし、そんなのは専門のSGMLパーサがやればいい話なので、DTDの情報はなるたけ吸収するけれども、チェックはほどほどに、という態度でDTDの簡易パーサから作成しています。完全にDTDが反映されるわけでもないですし、実際DTDの記述と現実のWWWブラウザ(主にMozillaとMSIEなんだけど)の動作を比べて、DTDの方を歪曲しちまってることすらあります。専門のSGMLパーサとの最大の違いは、DTDでは規定されない多くの事柄をチェックしたり、望ましくないと判断されるスタイルもチェックすることです。このように、チェックのよりどころはDTDなのですが、具合の悪いことにNavigator(Mozilla)用のDTDは存在しないのか公開されていないのかなので、捏造しなけりゃなりませんでした。本格的には書いたことのないPerl初心者なので、まずPerlから勉強し、あとは週末と夜中でだいたい片が付くだろうという予想で始めたんですが、だいたいそんなもんでした。難しいですね、Perlって。今はなき日経MIXでいろいろ教えていただきました。Perl5に移行しています。ソースは非常に汚いです。このサイトの運営は作者が行なっているわけではありませんのでご注意ください。作者が管理しているのはプライマリサイトだけです。このサイトの管理人はその連絡先を明記してください。明記されていないサイトは正しくない利用形態です。営利目的の利用は有料です。著作権表示を除き、HTMLの改変は自由に行なってください。