HTMLとDTD

[統計] HTMLからXHTMLへの移行を進めていますか?



0   名前: Luke : 2005/12/20 17:11
はじめまして。

HTMLに独自のDTDを読み込ませることはできないのでしょうか。
現在、下記のようなHTMLとDTDで試していますがうまくいきません。
HTMLをブラウザでみたときに
test
と表示させたいのですがそのまま
&ID;
と出てしまいます。
これは読み込めていないのか、こういうことはできないのかわかりません・・・。
どなたかご存知の方がいらっしゃいましたら、回答お願いします。

HTML

<!DOCTYPE HTML SYSTEM "./test.dtd">
<html>
<head>
<title>Test</title>
</head>
<body>
&ID;
</body>
</html>

DTD

<?xml version="1.0" encoding="Shift_JIS"?>
<!ENTITY ID "test">

1   名前: Pid : 2005/12/20 17:11
何だか SGML,XML,HTML がごっちゃな感じがします(test.dtd になぜか XML 宣言がありますし,html|head|body|title 要素が定義されていません)。


で,結論だけ言えば,

(a). SGML 機構を利用して HTML を拡張することは(さまざまな事情が絡みますので)できないでしょう。ただ,既存のものに対する保証を与えることはできます。
http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/appendix/notes.html#h-B.1
http://suika.fam.cx/~wakaba/-temp/wiki/wiki?HTML%2F%2F%CA%B8%BD%F1%B7%BF%C0%EB%B8%C0
http://www.geocities.co.jp/Hollywood-Studio/8691/

(b). XML および XSLT 機構を利用すれば,自分だけのマークアップ言語を定義し,かつそれを (X)HTML に変換することが可能です(最近のメジャーブラウザはクライアント側 XSLT に対応しつつあります)。
http://piro.sakura.ne.jp/ (ソースを覗くと良い)
http://homepage1.nifty.com/CavalierLab/lab/xml/xslt/

一例。

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE myml [
<!ELEMENT myml (#PCDATA)>
<!ENTITY myent "My Markup Language">
]>
<myml>This is an example of &myent;.</myml>

なお,XML 文書は必ずしも DTD を必要としません。と言うより,DTD は色々な点で不便なので,新たなスキーマ言語(たとえば XML Schema など)が提案されています。

2   名前: Luke : 2005/12/20 17:11
回答ありがとうございます。
なるほど。たしかごっちゃになっていましたね・・・。

リンク先などを参考にいろいろ試してみたいと思います。

一覧へ戻る