HTML 4 ソースを XHTML 1.0 ソースに変換します。
HTML 4.0 または HTML 4.01 でマークアップされた文書を XML 1.0 に基づく XHTML 1.0 文書に変換します。 また、ISO-HTML (ISO/IEC 15445:2000) でマークアップされた文書を HTML 4.01 Strict 文書とみなして XHTML 1.0 Strict 文書に変換することもできます。
<dl>
<dt>要素 1
<dd>要素 2
</dl>
<dl>
<dt>要素 1
</dt><dd>要素 2
</dd></dl>
<dl>
<dt>要素 1</dt>
<dd>要素 2</dd>
</dl>
このスクリプトは、入力された HTML 文書をおおよそ HTML の文法に忠実に従って解析します。正しく解析できなかった場合はエラーが出力され、変換は正しく行われません。
HTML の文法に関するよくある誤りには、例えば次のようなものがあります。
誤<a href=http://example.com/>
正<a href="http://example.com/">
--
の数が正しい注釈の形式に則っていない。
誤<!---------->
正<!-------->
当然のことながら、HTML 4 の仕様に定義されていない要素 (特定のブラウザでのみ有効な要素) は使用できません。
ただし、入力 HTML 文書に関する全ての誤りがエラーとして指摘されるわけではありません。 入力 HTML 文書に誤りがあっても、エラーなく変換処理が完了する場合もあります。しかし、この場合は出力 XHTML 文書も当然誤りを含むものになります。
入力が HTML 4 の仕様に適合する (valid である) HTML 文書ならば 出力は XHTML 1.0 に適合する筈です。もし HTML 4 適合文書の入力に対し XHTML 1.0 に適合しない (valid でない) 出力が得られた場合は、作者宛にご連絡下さい。
なお、文書型宣言における文書型宣言部分集合には対応していません。
SGML 仕様 (JIS X 4151-1992) 6.6.1 記録の境界に規定されている RS と RE の扱いには対応していません。この規定によって無視すべき RS または RE があっても、 それらは無視せずにそのまま出力に反映します。
出力 XHTML 文書についてこのことによって大きな不具合が発生することはないと思われるため、 今後も RS と RE の扱いを変える予定はありません。
SCRIPT 要素および STYLE 要素の内容はそれに含まれる文字に応じて CDATA セクションとして出力します。
内容に ]]>
が含まれる場合は CDATA セクションが複数に分かれます。
DOM では CDATA セクションが独立したノードとして
出現することに注意してください。
A 要素や IMG 要素の name 属性は XHTML 1.0 では非推奨となり、id 属性に置き換えるべきものとされていますが、このスクリプトは name 属性を id 属性に変更するなどの処理は特に行いません。 また、各要素の lang 属性は xml:lang 属性と lang 属性の二つ両方を出力します。
文書型宣言やマーク区間宣言の状態見出し語指定に含まれるコメントはすべて無視し、 出力 XHTML 文書には一切反映しません。通常のコメントは出力に反映します。
入力の META 要素の一つに次のような形式で文書のエンコーディングを示す情報が含まれている場合は、 出力の XML 宣言のエンコーディング宣言にその情報を反映します。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
変換テスト用文書を変換して、スクリプトが正しく動作しているかを確認できます。
バージョン | 日付 | 備考 |
---|---|---|
v0.2.2 | 2005 年 12 月 18 日 | ほぼ完成 |
v0.3.6 | 2005 年 12 月 28 日 | 各種修正 |
v0.3.10 | 2006 年 1 月 31 日 | 瑣末な修正 |
v0.4 | 2006 年 2 月 17 日 | 省略された終了タグを空白類の前に補うオプションを追加 |
v0.4.1 | 2006 年 11 月 29 日 | 瑣末な修正 |