マークアップ言語とハイパーテキスト
マークアップ言語とは,文書の構造や体裁を明示する言語のことです。
単純なテキストデータは、単なる文字列の羅列ですが、それにタグといわれる記号を挿入することにより、段落や文字のフォントを指示したり、章や節などの構造を指定します。
代表的なマークアップ言語はWebページを記述するHTMLですが、文書作成ソフトのWordなどもマークアップ言語です。マークアップ言語の特徴は、データの中に命令(タグ)が組み込まれていること、それを解読するソフトウェアがブラウザや文書作成ソフトに内蔵されていることです。
ここでは、ブラウザで扱うものに限定し、文書作成ソフトは対象外にします。
ハイパーテキストとは,HTML文書(Webページ)のように、ある文書の任意の個所に,他文書へのリンクを埋めこんで,複数の文書を連結できるようにした文書のことです。
ハイパーテキストはマークアップ言語で記述されます。タグなどの記述規則に留意すればマークアップ言語、文書そのものに留意するばハイパーテキストになりますが、両者を混同して用いることもあります。
マークアップ言語の変遷
- SGML(Standard Generalized Mark-up Language)
- 製造業での共同開発の発展により,仕様書などのデジタル文書を企業間で共有する必要性が重視され,文書の標準化が進められました。1987年にISO化され,アメリカ国防総省などの公文書フォーマットとしても採用されるなど普及しました。
しかし,SGMLの文法は複雑であり,タグの構造を明記する必要がある(DTD)など,専門家以外には使いにくいものでした。
- HTML(HyperText Markup Language)
- 1989年にティム・バーナーズ=リー(Tim Berners-Lee)は (World Wide Web)を考案しました。そして,1990年代初頭に,SGMLを参考にして,誰にも使いやすいマークアップ言語であるHTMLを開発しました。
HTMLでは,あらかじめ定めたタグのみを使用することにより,個別にDTDを指定する必要がなくなり,理解しやすく使いやすいものになりました。
その後,HTMLはW3C(World Wide Web Consortium)により標準化が行われ発展してきました。
- XML(eXtensible Markup Language)
- XMLは,SGMLの利点を継承しつつ,HTMLの使いやすさを取り入れた言語です。1996年にW3Cから草案が出され1998年にXML1.0が勧告されました。XMLは,インターネットでのデータ交換に広く利用されつつあります。
- XHTML(Extensible HTML)
- HTMLが普及するのに伴い,表示方法を重視するタグが多く作られ,本来の文書構造を明確にするという目的から外れてしまいました。それで,HTML4版では,表示関連タグ非推奨として,原点に戻るようにしました。
2000年にW3Cは,HTML4をXMLをベースとして再形式化したXHTMLを勧告しました。しかしその後 W3Cは、XHTML2の策定を打ち切り、XHTMLは自然消滅したようです。
- HTML5
- 一時,HTMLは4.01版で固定し,今後の発展はXHTMLに移行しようという動きがありました。ところが、XHTMLへの移行はあまり進まず、その間に、Webによるビジネスが発展して、HTMLでWebアプリケーションを記述する必要性が多くなり、HTMLの新バージョンであるHTML5が策定されました。
現在では、ほとんどのブラウザはそれに対応しており、Webページの大部分はHTML5で記述されています。
HTMLの発展機能
HTMLは、Javascriptの発展などとともに、多様な機能が付加され普及してきました。
- CSS:「HTMLは文書の構造を記述する言語であり、体裁の記述を分離すべきだ」とされ、体裁記述言語としてCSSが策定されまshた。これにより、Webサイト内での各Webページを統一したデザインにしたり、閲覧環境によりデザインを変更したりすることが容易になりました。
- Ajax:Webページ内で非同期通信を行いながらインターフェイスの構築を行うJavascriptの機能です。代表的な利用例に、地図の表示や移動などの Google Map があります。
- canvas:画像を表示するには、他のソフトで作成したGIFやJPEGのファイルを取り込んでいましたが、<Canvas>タグを用いることにより、JavaScriptにより記述することができます。HTML文書だけでグラフやイラスト動画が記述できます。
- <video>や<audio>により、Flashなどのプラグインを用いずに、動画再生などができるようになりました。
- データを入力するフォームの機能が強化されました。入力フィールドに自動的にフォーカスする属性や入力データを自動的にチェックする属性など、従来はJavaScriptを用いて処理していた機能がHTMLで記述できるようになりました。
DTD
HTML、XML、SGMLなどのマークアップ言語は、タグを用いて、それぞれの文法に従って記述されます。
DTD(Document Type Definition、文書型定義)とは、文書中に用いることができる要素や、要素が持つことのできる属性、要素間の順序・包含関係などの規則を列挙したものです。個々のマークアップ言語は、それぞれのDTDがあります。
最初のマークアップ言語であるSGMLでは、個々の文書でDTDを記述する必要があり、文書作成の自由度は高くなりますが、実際に文書を作成するのには高度な知識が必要で、作成は面倒なものでした。
HTMLでは、作成を容易にするために、標準的なタグに限定して、タグは定められた意味を持つことにしました。 <!DOCTYPE ~ > のDOCTYPE宣言をするだけでDTDを記述したことになります。さらに、HTML5では個別にDTDを定義すること(独自のタグ定義)はできなくなりました。
XMLは、その中間的な存在で、DTDが重要になりますが、DTDに代えて他のスキーマ言語(RELAXやXML Schema)を用いるようになりました。また、XML文書が文法に合致しているかを自動的にチェックするXMLパーサなどもあります。
DOM
DOM(Document Object Model)は、HTMLやXMLの文書を、Javascriptなどのプログラミング言語で取り扱うためのAPIです。これらの文書タグは、DTDで定義され階層化構造になっています。それを理解すれば、指定した文書で「divタグで囲まれた範囲にあるimgタグをすべて取り出して表を作成せよ」というような処理をプログラミングすることが可能です。