初心者のためのホームページ作り 第53号

Web作成支援

メールマガジン「初心者のためのホームページ作り」でお伝えした内容を、「復習」の意味で掲載しています。テキストのみのマガジンと違って、実際のサンプルや画像を交えて解説していますので、理解が深まると思います。なお、疑問点や分からない点がありましたら、遠慮なく メールにてご質問ください。

プレーンテキスト版バックナンバー

今週<第53号>マガジンのおさらい

                   毎週金曜日配信 What's New 2003/5/30
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
 今週のコンテンツ
  ■ HTML講座 第3回 文書型定義
  ■ XHTML講座 第15回 スクリプトの扱い
文書型定義とは?
文書型定義(Document Type Definition)とは、そのマークアップされたHTML文書がどのバージョンの形式のタグセット(タグの集合)を用いて書かれているのかを、HTML文書の冒頭で明示的に宣言する必須の構文です。
簡単に述べると、そのバージョンの HTML文書中で扱うことのできるタグと属性(タグの役割情報を示したプロパティ)の名前、タグをどのような順序で、どのような場所で配置できるのかを厳密に定義したものです。
HTMLは SGML のサブセットとして再定義されたマークアップ言語であるため、基本的には SGMLの原則を継承しています。つまり、文書型定義の宣言とは、そうした SGMLの原理原則に則ったお約束です。
HTML4.01厳格仕様
Strict(厳格仕様)とは、見栄えを提供する物理的表現のタグセットを利用することができません。文書構造があくまで論理的に記述することを目的とした文書型定義です。
厳格仕様の文書型定義は、以下のとおりです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
この中で、"DTD""EN" は必ず大文字でなければなりません。なお、この文書型は「互換型」と言われており、Webブラウザの仕様でパース(解釈)されて「厳格な仕様」として、ブラウザ上でレンダリングされます。
Strict の標準型は以下のとおりです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
   "http://www.w3c.org/TR/html4/strict.dtd">  (改行なしで記述)
DTD(文書型定義)の中で示される URLは、Webブラウザが W3C の Webサイト上で示される HTMLStrict仕様書を参照し、その仕様をパースしてレンダリングされます。
「互換型」と「標準型」では、表示結果に微妙な差異があります。特に OS によっては、表組や文字の大きさに歴然とした違いを発生させる場合があります。
厳格仕様標準型のサンプル
HTML4.01過渡期仕様
Transitional(過渡期仕様)とは、物理的な見栄えを提供するタグセットをサポートしています。W3Cは、現在世界中にある Webサイトを「厳格仕様」に適用するわけではなく、いずれ廃止することを予定として「過渡期仕様」を残しました。文法について、かなりに自由度があります。
ただし、廃止する時期などについては明言しておりませんが、既に XHTML1.1 を勧告しており、HTMLについての新たな仕様の開発は行っておりません。
過渡期仕様の文書型定義は以下のとおりです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
厳格仕様と同様に、"DTD""EN" については、大文字を使用しなければなりません。この宣言は、Webブラウザの仕様によってパースされレンダリングします。
過渡期仕様の標準型は以下のとおりです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd"> (改行なしで記述)
「互換型」と「標準型」では、表示結果に微妙な差異があります。厳格仕様と同様に、W3Cの Webサイトにある仕様書を参照します。
過渡期仕様互換型のサンプル
HTML4.01フレーム仕様
この仕様は、過渡期仕様にフレームが加わったもので、いずれ廃止が予定されています。
フレーム型仕様の文書型定義は以下のとおりです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
フレームを利用する場合、フレームセットを示した「親」となる HTML文書の冒頭で宣言しなければなりません。当然のことながら、「厳格仕様」、「過渡期仕様」では、フレームを利用することはできません。
フレーム仕様の標準型は以下のとおりです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
  "http://www.w3.org/TR/frameset.dtd"> (改行なしで記述)
フレーム仕様標準型のサンプル フレームに対応したブラウザで見ることができます。それ以外はご容赦!
ISO-HTML/JIS-HTML仕様
基本的に HTML4.01Strict仕様をベースとして定義されている ISO(国際標準規格)独自の文書型定義です。要素タイプおよび、その属性の仕様が微妙に W3C仕様と異なり、非常に厳格になっています。
ISO-HTML/JIS-HTMLの文書型定義は以下のとおりです。
<!DOCTYPE HTML PUBLIC "ISO/IEC 15445:2000//DTD HTML//EN">
なお、ISO-HTMLを日本語化したものが JIS-HTMLで、その内容はまったく同じです。
ISO-HTML/JIS-HTMLのサンプル
◆ XHTML1.1 におけるスクリプトの扱い
XHTML1.1では、スクリプトなどのデータは、非XHTMLとされ、その内容は #PCDATA(parsed character data)として解釈されます。
つまり、SGML が解釈する文字、という意味です。JavaScriptや JavaScriptなどでは、しばしば & や、< などが用いられますが、これらの文字は、&amp; とか、&lt; と記述しなければなりません。これらは 実体参照文字 といわれているもので、特別扱いされている文字です。
例えば、以下の JavaScript の一部を参照してください。
 <script type="text/javascript">
 <!--
    function makeArray(n) {
      this.length = n;
      for (var i = 1; i <= n; i++) {
        this[i] = "no";
      }
      return this;
   }
 -->
 </script>
この中では、「 i <= n; 」で利用した実体参照文字があります。これをXHTML1.1文書内でエスケープするためには2つの方法があります。
CDATAセクション
CDATAセクション(CDセクション)は、XML ではしばしば用いられている手法です。
CDATAとは、実体参照が含まれても、そのまま利用することができる「普通のテキスト」として扱われます。CDセクションは、データを CDATAとして扱うものです。
CDセクションの記述は以下のとおりです。
 <script type="text/javascript">
 <![CDATA[
    function makeArray(n) {
      this.length = n;
      for (var i = 1; i <= n; i++) {
        this[i] = "no";
      }
      return this;
   }
 ]]>
 </script>
CDセクションは、視覚系ブラウザの最新版でサポートされているものがありますが、古いブラウザなどでは無視され、ソースコードがそのまま表示されてしまう危険があります。
外部スクリプト
CDセクション未対応、あるいは少し古いブラウザに対応するためには、スクリプトを外部文書として利用する方法が一番安全で確実です。
外部スタイルシート(CSS文書)は link要素で、読み込みますが、スクリプトは、src属性で読み込みます。
外部スクリプト文書の読み込み
<script type="text/javascript" src="test.js"></script>
この構文は、外部JavaScript文書「test.js」を、XHTML文書中で読み込みます。これによって、安全にスクリプトを実行することができます。
外部スクリプト文書による JavaScript 詳しい構文は、今週のマガジン 「第53号」 を参照してください。


Valid XHTML 1.1! Copyright(C) 2002-2003 ばんばん banban@scollabo.com