読者です 読者をやめる 読者になる 読者になる

最小のHTML

最小のHTML文書とは何か - Qiita を見て、いろいろ気になるところがあったんだけど、よく見たら書いたのが若葉氏で途端に自信がなくなった。

(XHTML 1.1 では) DOCTYPE 宣言は必須でしたが、不思議なことに公開識別子とシステム識別子は (明確には) 必須とされていませんでした。

うーん、まあ if present をどう解釈するかという感じかなあ。仕様策定者はさすがに必須のつもりで書いたんじゃないかと思うんだけど。

巷ではなぜかシステム識別子は省略できるとされることもありましたが、 HTML 4.01 が要求する DOCTYPE 宣言にはシステム識別子も含まれていました。

これも仕様書の文言をどこまでそのまま受け取るか、という感じかなあ。HTML 4.01 仕様書自身のソースでシステム識別子が略されているというのがあって、まあ仕様策定者的にはそこは省略してもいいつもりだったんじゃないかなーと思うんだけど。

ちなみに SGML 的には PUBLIC と引用符の間の空白は削れるし、公開識別子とシステム識別子の間の空白も削れるんだけど、これも use this document type declaration というのをどこまでそのまま受け取るかによるのかなあ。

あと、XHTML 1.1 ではbodyの内容が空でもいい (<!ENTITY % body.content "( %Block.mix; )*" >) っての初めて知った (忘れただけかも知れない)。HTML 4.01 では <!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body --> なので <p> か何かを書く必要がある。ここははっきり誤り。

まあ実は HTML 4.01 に関しては昔考えたことがあったんだよね。今見るとタイトルは意味不明だし解説もないしで不親切極まりない。もうちょい詳しい話はquaaさんが最小のHTML 4.01?に書いてる。