HTMLとSGML、HyTimeとSGML、XMLとSGMLの関係
2001年05月31日作成
(株)日本ユニテック
目次
- PART1.SGMLとは?
- PART2.HTMLとSGML、HyTimeとSGML、XMLとSGMLの関係
HTMLとSGML
HTMLとは、ホームページを記述するための タグセットです。SGMLもタグセットです。では、HTMLとSGMLはどういう関係となるでしょうか?
HTMLは、SGMLによって定義された数あるタグセットのうちの1つです。たとえば、マニュアル用のタグセットや、社内文書用のタグセットを定義するのと同じように、ホームページ用のタグセットをSGMLのDTDによって定義したのがHTMLです。
HTMLのDTDはW3Cという組織が定義しています。
HTMLがSGMLと違うところ
HTMLは、SGMLと異なる面も持っています。次のような点がSGML(もしくはSGMLのポリシー)と異なっています。
・レイアウト言語として使われている
・必ずしもDTDに従っているわけではない
「レイアウト言語として使われている」ことは、HTMLでホームページを作るときに、文書構造を表現しようとしてタグを記述する人はまずいないことに見ることが出来ます。
たとえば、表を書くためではなく、二段組にするためにtable タグを使ったりします。
HTMLを使った"裏ワザ"レイアウトテクはちまたにあふれています。
「必ずしもDTDに従っていない」ことは、HTMLのDTDというものが一応存在するものの、ブラウザがDTDとインスタンスの検証をするわけではないので、DTDに従っていなくてもHTML文書を書くことができる点に見ることで出来ます。
また、HTMLのDTDはあくまでも勧告であり、強制ではないので、各ブラウザ会社が独自のタグを開発して加えることもあります。この点が、DTDに厳密に従うことを求めるSGMLとHTMLとの大きく異なる点です。
HyTimeとSGML
HyTimeとは、文書構造を定義するためのメタDTDです。ハイパーメディアや時間依存情報などの文書を記述するためのDTDの書き方を提供しています。
では、HyTimeとSGMLはどのような関係になるでしょうか?
HyTimeはSGMLの拡張規格です。SGMLのDTDの書き方を決めているからです。
たとえば、SGMLでリンクのための要素を定義するとします。HyTimeがなければ、そのような要素や属性を独自に定義することになります。
しかし、HyTimeなら、リンク要素のDTDの書き方を決めているので、それに従って書くことができます。HyTimeでは、これらの要素がどんな役割を持つか、どのように使われるかを定義しています。
HyTimeがSGMLと違うところ
SGMLとの違いは、対象とする文書が広がったということです。SGMLは、主に紙に出力するスタティックな文書を対象としていました。しかし、HyTimeは、その対象をさらに広げてハイパーメディアやダイナミックな文書をもSGMLでマークアップすることを可能にしました。
XMLとSGML
XMLとは、タグを定義するためのメタ言語です。 あらゆる文書のタグセットを定義する方法を提供します。
では、XMLとSGMLはどのような関係になるでしょうか?
XMLはSGMLの簡易版と言えます。言い換えれば、文書を記述するためのSGMLのルールをもうすこし、軽くしたものです。SGMLに設定されていた、不必要と思われる機能をなくし、結果的に処理のパフォーマンスを良くすることを目的としています。このことによって、インターネットなどのネットワークでも使用しやすいマークアップ言語が実現しています。
XMLとSGMLが違うところ
XMLは、タグの省略を禁止することで、DTDとの検証を行う必要がなくなりました。
また、WWW上で用いることが意識されているため、リンクのための機能も充実しています。