6 HTMLの基本データ形式(Basic HTML data types

このページの目次

  1. 文字種の区別(Case information)
  2. SGML基本形式(SGML basic types)
  3. 文字列(Text strings)
  4. URI(URIs)
  5. (Colors)
    1. 色指定を行う際の注意(Notes on using colors)
  6. 大きさの指定(Lengths)
  7. MIMEタイプ(Content types (MIME types))
  8. 言語コード(Language codes)
  9. 符号化方法(Character encodings)
  10. 単文字(Single characters)
  11. 日付と時刻(Dates and times)
  12. リンク形式(Link types)
  13. 出力メディア(Media descriptors)
  14. スクリプト(Script data)
  15. スタイルシート(Style sheet data)
  16. 目標フレーム名(Frame target names)

この章では、各要素の内容や属性の値として使用可能な基本データ形式について説明します。

HTMLのDTDを読むための予備知識についてはSGML概説を記した第3章をご覧下さい。

Case information

属性の定義文には、属性値を記述する際に 文字種の区別に関する情報も記されています。定義文中では下記のような略語によって示されます。

CS
大文字と小文字とを区別する(すなわち、「a」と「A」では意味が違う)。
CI
大文字と小文字とを区別しない(すなわち、「a」と「A」は同じ意味になる)。
CN
文字種の変化がない(例えば、数字や、文書文字集合中の文字)。
CA
要素あるいは属性の定義自体に文字種の区別について記されている。
CT
データ形式の記述を参照せよ。

もし属性値がリスト形式の場合、他に特記されていない限りはリスト中の全ての値が上の指定による制限を受けます。

SGML basic types

文書型定義は、HTMLの各要素の内容形式や属性の値について、SGMLトークン(「PCDATA」「CDATA」「NAME」「ID」等)を用いて定義するものです。SGMLトークンの全定義に関しては[ISO8879]をご参照下さい。下記は、各キーワードの概説です。

Text strings

テキスト( %Text;とDTDで記載)型の属性の「テキスト」とは、「普通に読んで分かる」文字列のことを意味します。「属性」という概念については第3章2節2項をご覧下さい。

URIs

この仕様書では「URI」という用語を[URI]が述べている意味で用いています。([RFC1630]もご覧下さい。)

「URI」には「URL」が含まれるということにご注意ください。([RFC1738][RFC1808]の定義によります。)

相対URIは基準URIを利用することでフルURIへと復元されます。[RFC1808]の第3章が、その仕組みの規範的手続きについて定義しています。基準URIに関してより詳しくはリンクについて述べている12章をご覧下さい。

URIはDTD中でパラメータ実体 %URI;として記述されます。

URIは基本的に 大文字小文字等を区別します。ただし部分的に文字種を区別しない場合もあります。(例えばコンピュータの名称など。)けれども個々の詳細を特定するのは困難なので、「URIは文字種を区別する」と覚える方が無難です。

非ASCII文字をURIで使う場合のことについては附記B.2.1をご参照下さい。

Colors

属性値の形式「色」(DTDでは%Color;と記述)は、[SRGB]モデルで定義される色指定を参照します。色の値は十六進でR値G値B値を指定する形式(「#」記号と6桁の十六進数字)で指定するか、下に列記した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」と記しても、どちらも紫色を表します。

Notes on using colors

カラー化によって、文書はより多くの情報を表すようになり、また読みやすくもなるでしょう。けれども、カラー化に際しては以下のガイドラインについて御一考ください。

Lengths

HTMLでは、属性値として大きさを指定する3つの方法があります。

  1. ピクセル: (DTDでは %Pixels;と記載)。(スクリーンや紙面に)表示する際の大きさを、整数値のピクセル数で指定するもの。従って「50」という値は50ドットを意味する。ピクセル指定の規範的情報については[CSS1]をご覧下さい。
  2. 大きさ: (DTDでは %Length;と記載)。表示する際の大きさを、ピクセル数または割合(パーセント)で指定するもの。従って「50%」という値は可能な最大サイズの50%を占めることを意味する。
  3. 比率: (DTDでは%MultiLength;と記載)。表示する際の大きさを、ピクセル数、パーセント、相対的な比率で指定するもの。相対指定の形式は、「i*」というような形で、整数「i」の右にアスタリスクを書くこととなります。もし各指定形式が混在していて総合計が表示面積をはみ出すような場合、ユーザエージェントは、ピクセル形式とパーセント形式から順にスペース配分していき、残りのスペースを相対比率で割り当てます。相対指定されている区画は、「*」のついた整数の比率に従って配分を受け取ります。従って、ピクセル指定とパーセント指定の配分を終えた残りスペースが60ドットだったとして「1*、2*、3*」という3つの相対指定区画を割り振らねばならない場合、「1*」の区画には10ドット、「2*」の区画には20ドット、「3*」の区画には30ドットが割り当てられます。

大きさの値は 文字種の区別とは無縁です。

Content types (MIME types)

注。 [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に登録済みです。】

Language codes

属性値が言語コードの場合(DTDの記載は %LanguageCode)、[RFC1766]第2章の定義内容が参照されます。HTML文中での言語コードの扱いについては、本書の第8章1節1項をご覧下さい。言語コード情報に空白文字を含めることはできません。

言語コード情報に 大文字小文字の区別はありません

Character encodings

「charset」属性(DTDの記載は%Charset)は、第5章2節に記したように、符号化方法を表します。この属性値(例えば「euc-jp」)はIANAに登録されたものでなければなりません。([CHARSETS]に全リストがあります。)

符号化方法の名称は 大文字小文字を区別しません

外部文書の符号化方法を判定するためには、ユーザエージェントは第5章2節2項に記した手順に従う必要があります。

Single characters

属性によっては文書文字集合中の任意のただ1文字だけを値とする場合があります。DTDでは%Character形式と記されます。

その1文字というのは文字参照によって記すことも可能です。(例えば「&」のように。)

6.11 日付と時刻Dates and times

[ISO8601]では、日付と時刻の表現に関して、多くの方式が認められています。けれども現在のこのHTML仕様は、[DATETIME]形式のみを、正式な日付/時間文字列(DTDでの表記は %Datetime)として採用しました。

表示形式は、

  YYYY-MM-DDThh:mm:ssTZD

で、次の内容を表しています。

YYYY
は4桁の数値で西暦年で表します。
MM
は2桁の数値で月を表します (01なら1月、など)。
DD
は2桁の数値で日を表します (01 から 31 まで)。
hh
は2桁の数値で24時制の時を表します (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 分間遅れた現地時間を表します。

日付と時刻を表す場合は区切り子も含めて正確に上の通の構成要素で表す必要があります。日付時刻文字列においては、[ISO8601]に従って、日付と時刻の区切り子が大文字の T であることにご注意下さい。

秒を扱えないアプリケーションの場合には、秒の値は「00」として構いません。(さらに、どうしても必要があるならば、時・分の値も「00」としてしまって構いません。)

注。 [DATETIME] は [秒表示が0-59なので] 閏秒を示すことができません。

Link types

HTML 4.0では次の リンクタイプ指定が許可されています。各形式には伝統的な実装状況を記してあります。DTD中では%LinkTypesと表記され、空白文字で区切って並記することができます。逆に個々のリンクタイプ形式の名称に空白文字を含めることはできません。

各名称は 大文字小文字を区別しません。したがって「Alternate」と書いても「alternate」と書いても同じ内容を表します。

各ユーザエージェント、サーチエンジン、などは、このリンクタイプを様々に活用します。例えば、ユーザエージェントならナビゲーションバー上にリンク文書の目印を並べるとか。

Alternate
代替文書へのリンクを示します。lang属性と併用した場合、翻訳版の所在を示します。media属性との併用は、別メディア出力用に設計した版を示します。
Stylesheet
外部スタイルシートを参照します。詳細は14章の外部スタイルシートの節をご覧下さい。リンク形式「alternate」との併用で、ユーザがスタイルシートの選択を行えるようになります。
Start
長い文書が分割されている場合に、第1部を指し示します。例えばサーチエンジンに対して文書全体の開始地点を知らせることができます。
Next
続きものとしてページ分割されている文書の、「次」ページを指し示します。ユーザエージェントは、移動時間短縮のため、「現在」文書の表示中に、裏で「次」文書のダウンロードをしておくことも可能です。
Prev
続きものの「前」を指し示します。ユーザエージェントによっては「Previous」と綴っても通じる場合があります。
Contents
当該文書への目次ページを参照します。ユーザエージェントによっては「ToC」(Table of Contentsの略)で通じる場合があります。
Index
当該文書への索引ページを参照します。
Glossary
当該文書への述語集ページを参照します。
Copyright
当該文書の著作権に関して記したページを参照します。
Chapter
多ページ化文書中の章部分を参照します。
Section
多ページ化文書中の節部分を参照します。
Subsection
多ページ化文書中の小節部分を参照します。
Appendix
多ページ化文書中の附記ページを参照します。
Help
ヘルプのページ(詳説のページや、参照先のリンク一覧など)を参照します。
Bookmark
ブックマークを参照します。外部文書へのリンク一覧です。ブックマークのラベルとしてtitle属性が利用されるでしょう。各文書に複数のブックマークを設定できることにご注意下さい。

この仕様書に記されていない 新たなリンクタイプを使いたいという場合もあるでしょう。その場合はリンクタイプの定義を示すprofileを用意しなければなりません。詳しくはHEAD要素のprofile属性に関する項をご覧下さい。

リンクタイプの各々についてより詳しくは、リンクを説明している第12章をご覧下さい。

Media descriptors

下記は、 許可されている出力メディア表記(DTDでは %MediaDescと記されています)です。

screen
ページ型でないコンピュータ画面への出力を表します。
tty
固定文字幅での出力、例えばテレタイプ、端末機器、表示能力に制限のある携帯機機、などでの出力を表します。
tv
テレビ型の出力(低解像度、カラー、スクロール能力に限界有り)を表します。
projection
プロジェクターでの出力を表します。
handheld
モバイル機器での出力(小画面、モノクロ、ビットマップ画像、解像度に制限あり)を表します。
print
ページ型の、不透明な素材で行われる、印刷状態のプレビュー画面出力を表します。
braille
点字出力を表します。
aural
音声合成出力を表します。
all
全ての出力に適合します。

将来のHTMLでは、これらに新しい出力形態が加わり、またパラメータ値の利用も可能になるでしょう。そうした進化を促進するため、HTML 4.0準拠ユーザエージェントは、media属性を次のように 解釈する必要があります。

  1. コンマで区切って列挙されている各指定を分離する。例えば、
    media="screen, 3d-glasses, print and resolution > 90dpi"
    

    は、次の各内容に分解される。

    "screen"
    "3d-glasses"
    "print and resolution > 90dpi"
    
  2. US-ASCII文字の「a-zA-Z」(ユニコードの十進コードで「65-90」と「97-122」)、数字「0-9」(ユニコードの十六進コードで「30-39」)、そしてハイフン文字、これら以外の文字が現れた時点で、指定形式名は打ち切って解釈する。例えば上記は、次のようになる。
    "screen"
    "3d-glasses"
    "print"
    
  3. こうして残った指定形式名の文字種判定を行い、適合しない場合は無視してもよい。上記からは screenprint が有効となる。

注。 スタイルシートには各出力特性に合わせたバリエーションを同時に組み込むことができます(例えばCSSの「@media」構造)。この場合出力指定の形式を「media=all」としておくとよいでしょう。

6.14 スクリプトScript data

スクリプトデータ(DTDの表記は %Script;)は、SCRIPT要素の内容としても、内在イベント関連の属性値としても記されます。ユーザエージェントは、スクリプトデータをHTMLのマークアップと勘違いしてはならず、必ずスクリプト実行プログラムに渡さなければなりません。

スクリプトデータの 文字種制限は、各スクリプト言語の定義に依存します。

スクリプトのデータに関し、「SCRIPT」要素の内容としては文字参照が使えないけれどもイベント属性の値としては文字参照も使えることに、ご注意下さい。非HTMLデータについて、より詳しくは附記B.3.2$B$N非HTMLデータの扱いをご参照下さい。

6.15 スタイルシートStyle sheet data

スタイルシートのデータ(DTDでの表記は%StyleSheet;)は、STYLE要素の内容と、style属性を設定できる他の要素の属性値として記述できるものです。ユーザエージェントは、このデータをHTMLマークアップと勘違いしてはいけません。

スタイルデータの文字種制限は、スタイルシートの記述言語の各定義に依存します。

スタイルシートのデータに関し、「STYLE」要素の内容としては文字参照が使えないけれども「style」属性の値としては文字参照も使えることに、ご注意下さい。非HTMLデータについて、より詳しくは附記B.3.2をご参照下さい。

Frame target names

予約されている名前を下に記しましたが、それ以外の目標フレーム名(DTDで言うところの%FrameTarget;)は、アルファベットの大文字または小文字(a-zまたはA-Z)で始まる必要があります。ユーザエージェントは、それ以外のものを無視しなければなりません。

下記は特別な意味を持った予約済み目標名です。

_blank
ユーザエージェントは、この指定を受けたら、名前のない新規ウインドウを描写します。
_self
ユーザエージェントは、この指定を受けたら、元文書を表示していたフレームと同じフレームに次の文書を描写します。
_parent
ユーザエージェントは、この指定を受けたら、元文書を表示していたFRAMESETの親フレームに次の文書を描写します。親フレームがない場合は _self と同じ指定となり、元フレームの更新を行うこととなります。
_top
ユーザエージェントは、この指定を受けたら、元文書を表示していたフレーム枠を全て解消し、表示枠全体に次の文書を描写します。元文書に親フレームがない場合は _self と同じ指定となり、元フレームの更新を行うこととなります。