Top > MyPage
 

XHTML

XHTML

cms等にも関わってくることなので、少々xhtmlについて調べてみました。

XHTMLの歴史

SGML登場

SGMLとは1986年にISO8879として承認されたマークアップ言語です。マークアップ言語とは、人間が相当ファジーに文書構造を把握できるのに対して、コンピュータは馬鹿なのでそのような曖昧な文書構造では理解できないので、決まりを決めたと言うことです。例えば、

坂井のマダガスカル探検記

僕は2005年の春、長い間勤めていた仕事を辞め、遙々マダガスカルへと旅立ちました・・・・

などとあると、1行目がその題名で、その後は本文だなとわかります。そしてこの形式を必ず変えなければ、それはそれなりにコンピュータも良いのですが、気分で次のように変えてしまうとコンピュータは混乱してしまいます。

 坂井のマダガスカル探検記
 著者:坂井和郎
 日付:2005-05-16

僕は2005年の春、長い間勤めていた仕事を辞め、遙々マダガスカルへと旅立ちました・・・・

これだと「著者」というところから本文とコンピュータに見なされてしまうかもしれません。

というわけで

<title>坂井のマダガスカル探検記</title>
<author>坂井和郎</author>
<date>2005-05-16</date>
<document>僕は2005年の春、長い間勤めていた仕事を辞め、遙々マダガスカルへと旅立ちました・・・・</document>

というように書こうよ、というのがマークアップ言語というわけです。

もともとはアメリカ国防総省の兵器調達効率化のため軍需物資関連の膨大な文書を電子化する必要性が生じ、開発されたものらしいです。

HTML登場

SGMLは拡張性や自由度が高かったので、非常に煩雑で扱いにくいという欠点がありました。そこでこのSGMLをベースに1989年にHTMLが編み出されたわけです。しかしもともと論文や文書データを扱うことを前提にしたHTMLはインターネットの発展に伴うグラフィカルなデザインに対応できていませんでした。

本来文章自体をhtmlに、見た目はCSSにというように分けるという仕様になっていたのですが、CSS自体が開発過程にあったので、どんどんブラウザが独自拡張して応えるようになってしまいました。そして実際HTML3.2ではデファクトスタンダード(事実上のスタンダード)に、現在の見た目のデザインを直接指定する方法が取り入れられました。

HTMLの発展
バージョン
1989 HTML草案
1995 HTML2.0
1997 HTML3.2
1997 HTML4.0
1999 HTLL4.01
CSSの発展
バージョン
1996 CSS1.0
1998 CSS2.0

というように、どうしてもCSSが遅れがちになってきたのが、その原因でしょうか。しかし、本来目指していた「情報の構造をマークアップする」という目的をCSSが整うにしたがって、本格的にスタイルシートを使うという流れが出てきました。

XMLの登場

先述のSGMLは製造業の工程管理などにすでに利用されるようになっているのですが、「非常に煩雑で扱いにくいという欠点」を何とかしたいという要望が出てくることは必定でしょう。そこでXMLの登場です。 XMLはSGMLのサブセットという形で開発されましたが、これにはXMLの環境が整う間にすでに稼働しているSGMLの環境を利用するという事情があったからのようで、文法的にはSGMLに準拠しているものの、全く新しい言語だと考えることも出来るそうです。実際DTDを現在XML Schemaに移行していき、完全にSGMLからの呪縛を解こうとしているようです。

XHTMLの登場

HTMLは、もともと、SGMLのサブセットとして開発されたものなので、SGML→XMLという流れの中で、2000年にXMLのサブセットとして定義し直したものがXHTMLということになります。

最初はXHTML1.0はHTML4をそのまま定義し直したものであったため、使用できるタグや属性の種類は同じものでした。しかし微妙に違うSGMLとXMLの文法により、HTMLとXHTMLの違いが発生してきます。これが、たぶん、厄介な話になってくると思います。

XHTML1.0には、互換性のことを考えて、transitionalという従来の直接デザインを書き込む機能も含まれているもの、さらにframeが使えるFrameset、そして、一切デザインはCSSにするというStrictがあります。そして、そのStrictとほぼ同じものがXHTML1.1のようです。

基本的な書き方

xml宣言


<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" >
  <head>
    <meta http-equiv="content-type"
          content="application/xhtml+xml; charset=Shift_JIS" />
    <title>XHTML 1.1 とはなんだろうか</title>
  </head>
  <body>
    <p>XHTML 1.1 は Modularization of XHTML に基づいて、XHTML 1.0 を再形式化したものです。</p>

  </body>
</html>

これがあると、どうやらIEがquirksモード(過去互換モード)になるらしく、これが相当厄介そうな気がする。