この章では、各要素の内容や属性の値として使用可能な基本データ形式について説明します。
HTMLのDTDを読むための予備知識についてはSGML概説を記した第3章をご覧下さい。
属性の定義文には、属性値を記述する際に 文字種の区別に関する情報も記されています。定義文中では下記のような略語によって示されます。
もし属性値がリスト形式の場合、他に特記されていない限りはリスト中の全ての値が上の指定による制限を受けます。
文書型定義は、HTMLの各要素の内容形式や属性の値について、SGMLトークン(「PCDATA」「CDATA」「NAME」「ID」等)を用いて定義するものです。SGMLトークンの全定義に関しては[ISO8879]をご参照下さい。下記は、各キーワードの概説です。
「CDATA」型属性値の語頭の空白文字や語尾の空白文字は無視され得ます。(例えば、 " myval " は "myval" のように解釈されます。)HTML要素に属性を設定する場合は、語頭や語尾に空白文字を付加してはなりません。
HTML 4.0で「CDATA」型の属性値を持つものに関して、この仕様書本文は、DTDには記されていない、適正な属性値に関する細かな注意点を記しています。
STYLE要素とSCRIPT要素は「CDATA」型の内容モデルを採用していますが、この2つに関して、ユーザエージェントは「CDATA」の扱いについて上に記した「属性値におけるCDATA」とは異なる扱いが必要です。この要素の内容に、マークづけや実体参照に見えるテキストデータが記されていても、HTML的に解釈せずに、単なるテキストデータの1つとして扱わなければなりません。そして最初に現れる「</」(終了タグの開始記号)のある場所で、両要素の内容が閉じられると解釈して下さい。適切に記されたHTML文書であれば、それは当該要素の終了タグとなっている筈です。
テキスト( %Text;とDTDで記載)型の属性の「テキスト」とは、「普通に読んで分かる」文字列のことを意味します。「属性」という概念については第3章2節2項をご覧下さい。
この仕様書では「URI」という用語を[URI]が述べている意味で用いています。([RFC1630]もご覧下さい。)
「URI」には「URL」が含まれるということにご注意ください。([RFC1738]と [RFC1808]の定義によります。)
相対URIは基準URIを利用することでフルURIへと復元されます。[RFC1808]の第3章が、その仕組みの規範的手続きについて定義しています。基準URIに関してより詳しくはリンクについて述べている12章をご覧下さい。
URIはDTD中でパラメータ実体 %URI;として記述されます。
URIは基本的に 大文字小文字等を区別します。ただし部分的に文字種を区別しない場合もあります。(例えばコンピュータの名称など。)けれども個々の詳細を特定するのは困難なので、「URIは文字種を区別する」と覚える方が無難です。
非ASCII文字をURIで使う場合のことについては附記B.2.1をご参照下さい。
属性値の形式「色」(DTDでは%Color;と記述)は、[SRGB]モデルで定義される色指定を参照します。色の値は十六進でR値G値B値を指定する形式(「#」記号と6桁の十六進数字)で指定するか、下に列記した16個の色名で指定します。色名指定の場合 大文字小文字の区別は不要です。
Black = "#000000" | Green = "#008000" | ||||
Silver = "#C0C0C0" | Lime = "#00FF00" | ||||
Gray = "#808080" | Olive = "#808000" | ||||
White = "#FFFFFF" | Yellow = "#FFFF00" | ||||
Maroon = "#800000" | Navy = "#000080" | ||||
Red = "#FF0000" | Blue = "#0000FF" | ||||
Purple = "#800080" | Teal = "#008080" | ||||
Fuchsia = "#FF00FF" | Aqua = "#00FFFF" |
というわけで、色を指示する値として「#800080」と記しても「Purple」と記しても、どちらも紫色を表します。
カラー化によって、文書はより多くの情報を表すようになり、また読みやすくもなるでしょう。けれども、カラー化に際しては以下のガイドラインについて御一考ください。
HTMLでは、属性値として大きさを指定する3つの方法があります。
大きさの値は 文字種の区別とは無縁です。
注。 [RFC2045]と[RFC2046]で定義されている「media type」という語は、リンク先リソースのデータ形式を表します。この仕様書では「media type」ではなく「content type」の語を、同じ意味で使用します【訳注:本文中の訳語としては「MIMEタイプ」を用います】。この仕様書中で使用される「media type」の語は、ユーザエージェントが 文書を出力するメディアの種類を指し示します。【訳注:本文中の訳語としては「出力メディア」を用います】
MIMEタイプを表す部分は、DTDの中では %ContentType;と記されます。
MIMEタイプは 大文字小文字を区別しません。
この仕様書に出てくるMIMEタイプは、「text/html」「image/png」「image/gif」「video/mpeg」「audio/basic」「text/tcl」「text/javascript」そして「text/vbscript」です。現在登録されているMIMEタイプについては、[MIMETYPES]をご覧下さい。
注。 MIMEタイプ「text/css」 は、IANAには現在未登録ですが、リンク先が[CSS1]スタイルシートの場合に使う必要があります。 【訳注:MIMEタイプ「text/css」は、1998年5月発表のRFC2318による規定を受け、IANAに登録済みです。】
属性値が言語コードの場合(DTDの記載は %LanguageCode)、[RFC1766]第2章の定義内容が参照されます。HTML文中での言語コードの扱いについては、本書の第8章1節1項をご覧下さい。言語コード情報に空白文字を含めることはできません。
言語コード情報に 大文字小文字の区別はありません。
「charset」属性(DTDの記載は%Charset)は、第5章2節に記したように、符号化方法を表します。この属性値(例えば「euc-jp」)はIANAに登録されたものでなければなりません。([CHARSETS]に全リストがあります。)
符号化方法の名称は 大文字小文字を区別しません。
外部文書の符号化方法を判定するためには、ユーザエージェントは第5章2節2項に記した手順に従う必要があります。
属性によっては文書文字集合中の任意のただ1文字だけを値とする場合があります。DTDでは%Character形式と記されます。
その1文字というのは文字参照によって記すことも可能です。(例えば「&」のように。)
[ISO8601]では、日付と時刻の表現に関して、多くの方式が認められています。けれども現在のこのHTML仕様は、[DATETIME]形式のみを、正式な日付/時間文字列(DTDでの表記は %Datetime)として採用しました。
表示形式は、
YYYY-MM-DDThh:mm:ssTZD
で、次の内容を表しています。
タイムゾーンの表し方です
日付と時刻を表す場合は区切り子も含めて正確に上の通の構成要素で表す必要があります。日付時刻文字列においては、[ISO8601]に従って、日付と時刻の区切り子が大文字の T であることにご注意下さい。
秒を扱えないアプリケーションの場合には、秒の値は「00」として構いません。(さらに、どうしても必要があるならば、時・分の値も「00」としてしまって構いません。)
注。 [DATETIME] は [秒表示が0-59なので] 閏秒を示すことができません。
HTML 4.0では次の リンクタイプ指定が許可されています。各形式には伝統的な実装状況を記してあります。DTD中では%LinkTypesと表記され、空白文字で区切って並記することができます。逆に個々のリンクタイプ形式の名称に空白文字を含めることはできません。
各名称は 大文字小文字を区別しません。したがって「Alternate」と書いても「alternate」と書いても同じ内容を表します。
各ユーザエージェント、サーチエンジン、などは、このリンクタイプを様々に活用します。例えば、ユーザエージェントならナビゲーションバー上にリンク文書の目印を並べるとか。
この仕様書に記されていない 新たなリンクタイプを使いたいという場合もあるでしょう。その場合はリンクタイプの定義を示すprofileを用意しなければなりません。詳しくはHEAD要素のprofile属性に関する項をご覧下さい。
リンクタイプの各々についてより詳しくは、リンクを説明している第12章をご覧下さい。
下記は、 許可されている出力メディア表記(DTDでは %MediaDescと記されています)です。
将来のHTMLでは、これらに新しい出力形態が加わり、またパラメータ値の利用も可能になるでしょう。そうした進化を促進するため、HTML 4.0準拠ユーザエージェントは、media属性を次のように 解釈する必要があります。
media="screen, 3d-glasses, print and resolution > 90dpi"
は、次の各内容に分解される。
"screen" "3d-glasses" "print and resolution > 90dpi"
"screen" "3d-glasses" "print"
注。 スタイルシートには各出力特性に合わせたバリエーションを同時に組み込むことができます(例えばCSSの「@media」構造)。この場合出力指定の形式を「media=all」としておくとよいでしょう。
スクリプトデータ(DTDの表記は %Script;)は、SCRIPT要素の内容としても、内在イベント関連の属性値としても記されます。ユーザエージェントは、スクリプトデータをHTMLのマークアップと勘違いしてはならず、必ずスクリプト実行プログラムに渡さなければなりません。
スクリプトデータの 文字種制限は、各スクリプト言語の定義に依存します。
スクリプトのデータに関し、「SCRIPT」要素の内容としては文字参照が使えないけれどもイベント属性の値としては文字参照も使えることに、ご注意下さい。非HTMLデータについて、より詳しくは附記B.3.2$B$N非HTMLデータの扱いをご参照下さい。
スタイルシートのデータ(DTDでの表記は%StyleSheet;)は、STYLE要素の内容と、style属性を設定できる他の要素の属性値として記述できるものです。ユーザエージェントは、このデータをHTMLマークアップと勘違いしてはいけません。
スタイルデータの文字種制限は、スタイルシートの記述言語の各定義に依存します。
スタイルシートのデータに関し、「STYLE」要素の内容としては文字参照が使えないけれども「style」属性の値としては文字参照も使えることに、ご注意下さい。非HTMLデータについて、より詳しくは附記B.3.2をご参照下さい。
予約されている名前を下に記しましたが、それ以外の目標フレーム名(DTDで言うところの%FrameTarget;)は、アルファベットの大文字または小文字(a-zまたはA-Z)で始まる必要があります。ユーザエージェントは、それ以外のものを無視しなければなりません。
下記は特別な意味を持った予約済み目標名です。
_blank
_self
_parent
_self
と同じ指定となり、元フレームの更新を行うこととなります。
_top
_self
と同じ指定となり、元フレームの更新を行うこととなります。