目次
ここでは、要素の内容や属性の値として現れ得る基本データ形式について説明する。
HTMLのDTDを読むための予備知識については SGML概説の章を参照のこと。
すべての属性定義には、値における 大文字小文字の区別に関する情報も含まれる。文字種情報は、次のキーワードで示される。
属性値がリスト形式であった場合、他に特記されていない限りは、上記キーワードはリスト中の全ての値に適用される。
文書型定義は、 HTMLの要素内容や属性値のシンタクスについて、PCDATA、CDATA、NAME、ID等のSGMLトークンを用いて定める。 トークンの完全な定義は[ISO8879]を参照のこと。 鍵となる情報を以下に概説する。
ユーザエージェントは、CDATA型属性値の、冒頭あるいは末尾の空白文字を無視してよい。 (例えば「 myval 」を「myval」として解釈してよい。) 著者は、冒頭あるいは末尾に空白文字のある属性値を宣言することを避けるべきである。
HTML 4 のCDATA型属性値における正当な値集合について、本仕様書は、DTDでは記述されていない追加的な制約を記述している場合がある。
STYLE要素とSCRIPT要素はCDATA型の内容モデルを持っているが、両要素について、ユーザエージェントはCDATAを以上とは異なる方法で処理する必要がある。 マーク付けと実体は生のテキストとして扱い、あるがままでアプリケーションに渡さねばならない。最初に現れる文字列「</」(終了タグ開始区切り子)は、そこで要素の内容が終わるものとして扱う。有効な文書では、これが当該要素の終了タグとなっている筈である。
DTDで%Text;と示される多くの属性値は、「人間が読んで解る」という意味の普通のテキストを示す。 属性に関する概説は、 属性に関する解説的記述の項を参照のこと。
本仕様書では、URIという語を、 [URI]が定義する通りの意味で用いる。 ( [RFC1630]をも参照のこと。)
URIにはURLも含まれるということに注意されたい。([RFC1738]と [RFC1808]が定義する通り。)
相対URIは、基底URIを用いてフルURIへと解決される。 [RFC1808]の3が、この手続きの規範的アルゴリズムを規定している。基底URIについて、より詳しくはリンクの章の 基底URIの項目を参照のこと。
URIは、DTD中ではパラメータ実体%URI;として表現される。
URIは基本的に大文字小文字を区別する。 コンピュータ名など、URIあるいはURIの一部分において大文字小文字が区別されない場合があるが、ここの詳細を特定するのは困難である。ユーザは、安全性の面から、URIは常に大文字小文字を区別すると覚えたほうがよい。
URI属性値における非ASCII文字の扱いについては附属書【B】を参照のこと。
属性値形式「色」(%Color;)は、[SRGB]モデルで定義される色指定を表す。 色の値は、#記号を冒頭につけた十六進数値、または下記の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)」という語は、リンク先リソースのデータ形式を指定する。本仕様書では、現在の用例に従い、「メディアタイプ」ではなく「MIMEタイプ」という語を採用する。【原文では MIME type ではなく Content type。しかし文中でMIME typeと記している箇所が幾つかある。】 この仕様書で用いる「メディア形式(media type)」の語は、ユーザエージェントが文書をレンダリングする 出力メディアのことを指す。
このデータ形式は、DTDでは %ContentType;と表す。
MIMEタイプは大文字小文字を区別しない。
MIMEタイプの例には、 「text/html」、「image/png」、「image/gif」、「video/mpeg」、「text/css」、「audio/basic」がある。 現在登録されているMIMEタイプの一覧は、 [MIMETYPES]を参照のこと。
属性値が言語コードの場合 (DTDでは %LanguageCode;と表す)、 これは [RFC1766]の2が定義する内容を指す。 HTMLでの言語コード指定については、 言語コードの項を参照のこと。 言語コードには空白文字を含めることはできない。
言語コードは 大文字小文字を区別しない。
「charset属性」 (DTDでは%Charset;で表す)は、文字符号化方法の項で記した、文字符号化方法を指す。 この値は、「euc-jp」等のように、IANAに登録された文字列でなければならない。 (完全リストは [CHARSETS]を見よ。)
文字符号化方法の名称は、 大文字小文字を区別しない。
ユーザエージェントは、外部リソースの文字符号化方法を決定する場合、 文字符号化方法の指定の項に記した優先順に従わねばならない。
属性によっては、文書文字集合中の任意のただ1文字だけを値とすることがある。 こうした属性はDTD中で %Character;形式として表す。
この単一文字は、「&」のように、 文字参照で指定してもよい。
[ISO8601]では、日付と時刻の表現に関して、多くのオプションとバリエーションが認められている。 本仕様のこの版では、プロファイル [DATETIME]で記述される1つの形式のみを正当な日付/時刻文字列として採用した。(DTDでは%Datetime; と表す。)
日付時刻文字列形式は次の通りで、
YYYY-MM-DDThh:mm:ssTZD次の内容を表す。
YYYY = 4桁の西暦年。 MM = 2桁の月数(01なら1月、など)。 DD = 2桁の日にち(01から31まで)。 hh = 2桁の時間(00から23まで) (am/pmは許されない)。 mm = 2桁の分(00から59まで)。 ss = 2桁の秒(00から59まで)。 TZD = タイムゾーンを示す。
タイムゾーンの示し方の一例。
ここに示した構成要素は、区切り記号も含めて正確に上記の通りでなければならない。日付時刻文字列に現れるテキストの「T」(これは常に大文字である)が、 [ISO8601]の規定により、時刻の記述の開始を示すことに注意されたい。
日付時刻文字列を生成するアプリケーションが秒数を取得できない場合、秒の値を「00」として構わない。(分や時間についても、必要であれば「00」としてよい。)
注意。 [DATETIME]は閏秒を指定することができない。
HTML文書の著者は、慣習的なインタープリテーションとして次の通り認定された リンク形式を用いてよい。 DTDの %LinkTypes;は、空白文字区切りのリンク形式リストを表す。 個々のリンク形式自体には、空白文字の存在は許されない。
リンク形式は 大文字小文字を区別しない。すなわち、「Alternate」と「alternate」は同じ内容を表す。
ユーザエージェント、検索エンジン等は、このリンク形式を、様々に解釈する。例えばユーザエージェントの場合、リンク先文書へナビゲーションバーによるアクセスを提供するなどである。
HTML文書の著者は、本仕様に定義のない 追加のリンク形式を定義したい場合もあろう。 この場合は、リンク形式を定義するために用いた規約を引用するプロファイルを用意しなければならない。 詳しくはHEAD要素の profile属性に関する項を参照のこと。
各リンク形式の詳細については、 HTML文書のリンクの章を参照のこと。
下記は、認定された出力メディア (DTDでは%MediaDesc;と表す)の一覧である。
HTMLの将来のバージョンでは、新しい値が採用されたり、パラメータ形式の値も採用されることとなろう。こうした拡張が容易に行えるよう、適合ユーザエージェントは 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のマーク付けであるものと誤解せず、スクリプトエンジンに渡さねばならない。
スクリプトデータが大文字小文字を区別するかどうかは、スクリプト言語に依存する。
要素の内容であるスクリプトデータは 文字参照を含むことができないが、属性の値では文字参照を含み得ることに注意されたい。より詳しくは、附属書【B】の 非HTMLデータの指定 の項で解説する。
スタイルシートデータ(DTDでは%StyleSheet;と表す)は、 STYLE要素の内容、及び style属性の値であり得る。 ユーザエージェントは、スタイルデータをHTMLのマーク付けと誤認してはならない。
スタイルデータが大文字小文字を区別するかどうかはスタイル言語に依存する。
要素の内容であるスタイルデータは 文字参照を含むことができないが、属性の値では文字参照を含み得ることに注意されたい。より詳しくは、附属書【B】の 非HTMLデータの指定 の項で解説する。
下記に掲げる予約済み名称を除き、目標フレーム名 (DTDでは%FrameTarget;と表す)は、アルファベット(a-zA-Z)で始めなければならない。ユーザエージェントは、それ以外の名称を無視する必要がある。
下記は、特別な意味を持つ、予約済みの目標フレーム名である。