6 HTMLの基本データ形式

目次

  1. 文字種情報
  2. SGML基本形式
  3. テキスト列
  4. URI
    1. 色を用いる際の注意
  5. 長さ
  6. MIMEタイプ
  7. 言語コード
  8. 文字符号化方法
  9. 単一文字
  10. 日付と時刻
  11. リンク形式
  12. 出力メディア
  13. スクリプトデータ
  14. スタイルシートデータ
  15. 目標フレーム名

ここでは、要素の内容や属性の値として現れ得る基本データ形式について説明する。

HTMLのDTDを読むための予備知識については SGML概説の章を参照のこと。

6.1 文字種情報

すべての属性定義には、値における 大文字小文字の区別に関する情報も含まれる。文字種情報は、次のキーワードで示される。

CS
値に大文字小文字の区別がある。 すなわちユーザエージェントは「a」と「A」とを異なるものと解釈する。
CI
値に大文字小文字の区別がない。 すなわちユーザエージェントは「a」と「A」とを等しいものと解釈する。
CN
文字種変換の影響を受けない。例えば属性値が数値であるという理由など。文書文字集合に含まれる1文字である場合もある。
CA
要素あるいは属性の定義自体に大文字小文字の区別がある。
CT
大文字小文字の区別についてはデータ形式の定義を参照せよ。

属性値がリスト形式であった場合、他に特記されていない限りは、上記キーワードはリスト中の全ての値に適用される。

6.2 SGML基本形式

文書型定義は、 HTMLの要素内容や属性値のシンタクスについて、PCDATA、CDATA、NAME、ID等のSGMLトークンを用いて定める。 トークンの完全な定義は[ISO8879]を参照のこと。 鍵となる情報を以下に概説する。

6.3 テキスト列

DTDで%Text;と示される多くの属性値は、「人間が読んで解る」という意味の普通のテキストを示す。 属性に関する概説は、 属性に関する解説的記述の項を参照のこと。

6.4 URI

本仕様書では、URIという語を、 [URI]が定義する通りの意味で用いる。 ( [RFC1630]をも参照のこと。)

URIにはURLも含まれるということに注意されたい。([RFC1738] [RFC1808]が定義する通り。)

相対URIは、基底URIを用いてフルURIへと解決される。 [RFC1808]の3が、この手続きの規範的アルゴリズムを規定している。基底URIについて、より詳しくはリンクの章の 基底URIの項目を参照のこと。

URIは、DTD中ではパラメータ実体%URI;として表現される。

URIは基本的に大文字小文字を区別する。 コンピュータ名など、URIあるいはURIの一部分において大文字小文字が区別されない場合があるが、ここの詳細を特定するのは困難である。ユーザは、安全性の面から、URIは常に大文字小文字を区別すると覚えたほうがよい。

URI属性値における非ASCII文字の扱いについては附属書【B】を参照のこと。

6.5

属性値形式「色」(%Color;)は、[SRGB]モデルで定義される色指定を表す。 色の値は、#記号を冒頭につけた十六進数値、または下記の16個の色名の、どちらかとする。色名は、 大文字小文字を区別しない

色名とsRGB値
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」とは、どちらも紫色を表す。

6.5.1 色を用いる際の注意

カラー化によって、文書はより多くの情報を表すようになり、また読みやすくもなるだろう。しかし、カラー化については以下の指針を考慮に入れられたい。

6.6 長さ

HTMLには、属性値となる長さの形式に、3つの形式がある。

  1. ピクセル: (DTDでは%Pixels; と表記)の値は、スクリーンや紙などキャンバスに表示する際のピクセル数を表す整数である。 従って、「50」という値は50ピクセルを意味する。ピクセルに関する規範的情報は、 [CSS1]を参照のこと。
  2. 長さ: (DTDでは%Length; と表記)の値は、%Pixel;または水平・垂直方向で利用可能な空間に対するパーセンテージである。 従って、「50%」という値は、可能な空間の半分を意味する。
  3. 複合長: (DTDでは %MultiLength;と表記)の値は、%Length;または 相対的な長さである。 相対的な長さは、「i*」という形式で示し、この「i」は整数である。 複数の要素が表示可能空間を取り合う場合、ユーザエージェントは、ピクセル及びパーセントで示された長さを先に割り当て、その残りを相対的な長さで分割する。 相対指定されている区画は、分割可能な空間について、「*」のついた整数の比率に従って分配を受ける。 値が「*」の場合、これは「1*」に等しい。 従って、ピクセル値とパーセント値を割り当て終えた残りが60ピクセルだったとして、「1*、2*、3*」という3つの相対指定がある場合、「1*」には10ピクセル、「2*」には20ピクセル、「3*」には30ピクセルが割り当てられる。

長さの値は大文字小文字の区別に無関係である。

6.7 MIMEタイプ

注意[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]を参照のこと。

6.8 言語コード

属性値が言語コードの場合 (DTDでは %LanguageCode;と表す)、 これは [RFC1766]の2が定義する内容を指す。 HTMLでの言語コード指定については、 言語コードの項を参照のこと。 言語コードには空白文字を含めることはできない。

言語コードは 大文字小文字を区別しない

6.9 文字符号化方法

「charset属性」 (DTDでは%Charset;で表す)は、文字符号化方法の項で記した、文字符号化方法を指す。 この値は、「euc-jp」等のように、IANAに登録された文字列でなければならない。 (完全リストは [CHARSETS]を見よ。)

文字符号化方法の名称は、 大文字小文字を区別しない

ユーザエージェントは、外部リソースの文字符号化方法を決定する場合、 文字符号化方法の指定の項に記した優先順に従わねばならない。

6.10 単一文字

属性によっては、文書文字集合中の任意のただ1文字だけを値とすることがある。 こうした属性はDTD中で %Character;形式として表す。

この単一文字は、「&」のように、 文字参照で指定してもよい。

6.11 日付と時刻

[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  = タイムゾーンを示す。

タイムゾーンの示し方の一例。

Z
UTC(Coordinated Universal Time : 協定標準時)を表す。「Z」は大文字でなければならない。
+hh:mm
UTCより hhmm 分間進んだ現地時間を表す。
-hh:mm
UTCより hhmm 分間遅れた現地時間を表す。

ここに示した構成要素は、区切り記号も含めて正確に上記の通りでなければならない。日付時刻文字列に現れるテキストの「T」(これは常に大文字である)が、 [ISO8601]の規定により、時刻の記述の開始を示すことに注意されたい。

日付時刻文字列を生成するアプリケーションが秒数を取得できない場合、秒の値を「00」として構わない。(分や時間についても、必要であれば「00」としてよい。)

注意[DATETIME]は閏秒を指定することができない。

6.12 リンク形式

HTML文書の著者は、慣習的なインタープリテーションとして次の通り認定された リンク形式を用いてよい。 DTDの %LinkTypes;は、空白文字区切りのリンク形式リストを表す。 個々のリンク形式自体には、空白文字の存在は許されない。

リンク形式は 大文字小文字を区別しない。すなわち、「Alternate」と「alternate」は同じ内容を表す。

ユーザエージェント、検索エンジン等は、このリンク形式を、様々に解釈する。例えばユーザエージェントの場合、リンク先文書へナビゲーションバーによるアクセスを提供するなどである。

Alternate
リンクが存在する文書の代替文書を指す。lang属性と併用した場合、当該文書の翻訳版を示す。 media属性との併用は、別メディア版を示す。
Stylesheet
外部スタイルシートを指す。詳細は 外部スタイルシートの項を参照のこと。 リンク形式「Alternate」との併用で、ユーザが選択可能な代替スタイルシートを示す。
Start
文書群の中の最初の文書を指す。検索エンジンに対して、最初に読ませたいと著者が想定している文書がどれであるかを示すことができる。
Next
続き物とされている文書群の、次の文書を指す。ユーザエージェントは、「次」の文書を先読みしておいて、ありえるダウンロード時間を節約することも可能である。
Prev
続き物の、前の文書を指す。同義語 「Previous」をサポートするユーザエージェントもある。
Contents
目次として提供される文書を指す。同義語「ToC (これはTable of Contentsの略)」をサポートするユーザエージェントもある。
Index
当該文書の索引である文書を指す。
Glossary
当該文書に関連する用語集である文書を指す。
Copyright
当該文書の著作権表示を指す。
Chapter
文書群の中の章である文書を指す。
Section
文書群の中の節である文書を指す。
Subsection
文書群の中の小節である文書を指す。
Appendix
文書群の中の附属書である文書を指す。
Help
詳説、他リソースへのリンク等の、ヘルプ文書を指す。
Bookmark
ブックマーク(しおり)を指す。ブックマークとは、長い文書の中の、ある重要な入り口に対して設定されたリンクである。 例えばブックマークのラベルなどとして、title属性が使われることがある。 1つの文書に複数のブックマークを設定できる点に注意されたい。

HTML文書の著者は、本仕様に定義のない 追加のリンク形式を定義したい場合もあろう。 この場合は、リンク形式を定義するために用いた規約を引用するプロファイルを用意しなければならない。 詳しくはHEAD要素の profile属性に関する項を参照のこと。

各リンク形式の詳細については、 HTML文書のリンクの章を参照のこと。

6.13 出力メディア

下記は、認定された出力メディア (DTDでは%MediaDesc;と表す)の一覧である。

screen
非ページ型のコンピュータスクリーンを示す。
tty
固定文字幅での出力、例えばテレタイプ、端末機器、表示能力に制限のある携帯機器、などでの出力を示す。
tv
低解像度で、色やスクロール能力に制限がある、テレビ型機器を示す。
projection
プロジェクターを示す。
handheld
画面が小さく、モノクロ、ビットマップ画像、帯域幅に制限がある、モバイル機器を示す。
print
ページ型の不透明素材での出力、および印刷プレビューモードでのスクリーン出力を示す。
braille
点字出力機器を示す。
aural
音声合成装置を示す。
all
すべての出力に適合する。

HTMLの将来のバージョンでは、新しい値が採用されたり、パラメータ形式の値も採用されることとなろう。こうした拡張が容易に行えるよう、適合ユーザエージェントは media属性を次のように パースしなければならない。

  1. 属性の値が複数のエントリのコンマ区切りのリスト形式である場合は、各値を分離する。
    media="screen, 3d-glasses, print and resolution > 90dpi"
    

    例えば上記は次のようになる。

    "screen"
    "3d-glasses"
    "print and resolution > 90dpi"
    
  2. 各エントリは、US-ASCII文字の「a-zA-Z」(ISO 10646の十六進値で「65-90」と「97-122」)、数字「0-9」(ISO 10646の十六進値で「30-39」)、そしてハイフン文字(十六進値で2d)、以外の文字が現れた時点で切り捨てられる。従って上記は次にようになる。
    "screen"
    "3d-glasses"
    "print"
    
  3. こうして残ったメディア形式指定の集合について、 大文字小文字の区別を判定する。ユーザエージェントは、文字種判定で合致しないエントリを無視してよい。上記の例では screenprint だけが有効となる。

注意。 スタイルシートは、メディア依存型のバリエーションを含む場合がある。(例えばCSSの@media構造。) この場合、 "media=all"と指定しておくのが妥当である。

6.14 スクリプトデータ

スクリプトデータ( DTDでは%Script;と表す)は、 SCRIPT要素の内容及び 組込みイベント属性の値であり得る。 ユーザエージェントは、スクリプトデータをHTMLのマーク付けであるものと誤解せず、スクリプトエンジンに渡さねばならない。

スクリプトデータが大文字小文字を区別するかどうかは、スクリプト言語に依存する。

要素の内容であるスクリプトデータは 文字参照を含むことができないが、属性の値では文字参照を含み得ることに注意されたい。より詳しくは、附属書【B】の 非HTMLデータの指定 の項で解説する。

6.15 スタイルシートデータ

スタイルシートデータ(DTDでは%StyleSheet;と表す)は、 STYLE要素の内容、及び style属性の値であり得る。 ユーザエージェントは、スタイルデータをHTMLのマーク付けと誤認してはならない。

スタイルデータが大文字小文字を区別するかどうかはスタイル言語に依存する。

要素の内容であるスタイルデータは 文字参照を含むことができないが、属性の値では文字参照を含み得ることに注意されたい。より詳しくは、附属書【B】の 非HTMLデータの指定 の項で解説する。

6.16 目標フレーム名

下記に掲げる予約済み名称を除き、目標フレーム名 (DTDでは%FrameTarget;と表す)は、アルファベット(a-zA-Z)で始めなければならない。ユーザエージェントは、それ以外の名称を無視する必要がある。

下記は、特別な意味を持つ、予約済みの目標フレーム名である。

_blank
ユーザエージェントは、指定文書を名前のない新規ウインドウに読みこまねばならない。
_self
ユーザエージェントは指定文書を、当該目標を指している要素が存在する現在のフレームに読みこまねばならない。
_parent
ユーザエージェントは、指定文書を、現在のフレームの直接の親である FRAMESETに読みこまねばならない。この値は、現在のフレームに親フレームが存在しない場合、_selfと等価である。
_top
ユーザエージェントは、すべてのフレーム割を解消し、元ウインドウ全体に指定文書を読み込まねばならない。この値は、現在のフレームに親が存在しない場合、 _selfと等価である。

訳者代表: 内田明 (UCHIDA Akira)
email: uchida@happy.email.ne.jp