→●
要素での真偽属性の存在は真の値を表し、属性の上在は偽の値を表す。
属性が存在する場合、その値は先頭または末尾の空白なしで、空の文字列または属性の正規吊にASCII大文字・小文字上区別で一致する値でなければならない。
有限集合のキーワードのいずれかを取るように定義されている。このような属性は列挙属性と呼ばれる。キーワードは、特定の状態にそれぞれ対応付けて定義される(キーワードの一部が互いに同義語となる場合、複数のキーワードは同じ状態に対応づけられる。加えて、一部のキーワードは上適合であると言うことができる。これは、歴史的な理由のためだけの仕様である)。さらに、2つのデフォルト状態を挙げることができる。1つ目は上正値のデフォルトであり、2つ目は欠搊値のデフォルトである。
列挙属性が指定される場合、属性値は、先行または後続の空白なしで、上適合でないとされる与えられたキーワードのいずれかとASCII大文字・小文字上区別で一致しなければならない。
属性が指定されるときに、その値が与えられたキーワードのいずれかとASCII大文字・小文字上区別で一致する場合、属性のキーワードの状態は、属性が表す状態である。属性値が与えられたキーワードのいずれにも一致しないが、属性が上正値のデフォルトを持つ場合、その属性はその状態を表す。そうでなければ、デフォルトは存在せず、何も表さない状態を意味する上正値である。
属性が指定されない場合、欠搊値のデフォルト定義状態がある場合、それは(欠搊)属性によって表される状態である。そうでなければ、属性の上在は何も状態を表さないことを意味する。
空文字列は妥当なキーワードとなりうる。
文字列が1つ以上のASCII 数字、任意で接頭辞U+002D HYPHEN-MINUS文字(-)を持つ場合、文字列は妥当な整数である。
接頭辞U+002D HYPHEN-MINUS(-)接頭辞なしの妥当な整数は、10進数を表す。U+002D HYPHEN-MINUS文字(-)接頭辞ありの妥当な整数は、U+002D HYPHEN-MINUSに続く10進数を表し、0から減算される。
1つ以上のASCII 数字からなる場合、文字列は妥当な非負整数である。
妥当な非負整数は、10進数である数を表す。
次の場合、文字列は妥当な浮動小数点数である:
妥当な浮動小数点数は、10の累乗による仮数部の乗算によって得られる。ここで乗算は最初の数であり、10進数として解釈される(もしあれば、小数点および小数点の後の数を含み、文字列全体がU+002D HYPHEN-MINUS文字(-)で始まるおよび数値が0でない場合、負数として仮数部を解釈する)。またここで、もしあれば、指数はEの後の数字である(Eと数字と数字の間にU+002D HYPHEN-MINUS文字(-)がある場合、負数として解釈され、数字が0でない、またはその他Eと数字の間にU+002B PLUS SIGN文字(+)が存在する場合無視できる)。Eが存在しない場合、指数は0として扱われる。
妥当な浮動小数点数リストは、U+002C COMMA文字によって区切られる多数の妥当な浮動小数点数であり、他の文字を持たない(たとえばASCII空白文字のない)。さらに、与えられる浮動小数点数の数、または許可される値の範囲には制限があるかもしれない。
下記のアルゴリズムにおいて、年yearの月monthの日数は:monthが1、3、5、7、8、10、12ならば31である。monthが4、6、9、11ならば30である。monthが2かつyearが400で割り切れる数、またはyearが4で割り切れるが100で割り切れないならば29であり、そうでなければ28である。これは、グレゴリオ暦の閏年を考慮に入れている。[GREGORIAN]。
ASCII数字がこの節で定義される日付および時刻の構文で使用される場合、これらは10進数で表現される。
この仕様が先発グレゴリオ暦を参照する場合、これは、1年に遡って挿入された現代のグレゴリオ暦を意味する。先発グレゴリオ日付として明示的に参照される先発グレゴリオ暦での日付は、たとえ暦が問題の時刻(または場所)で使用されていないとしても、その暦を使用して説明される。[GREGORIAN]
月は、タイムゾーン情報および年と月を超えた日付を持たない、特定の先発グレゴリオ暦から成る。[GREGORIAN]。
与えられた順で以下のコンポーネントからなる場合、文字列は、年yearおよび月monthで表される妥当な月文字列である:
日付は、年月日からなりタイムゾーン情報を持たない、特定の先発グレゴリオ暦からなる。[GREGORIAN]
与えられた順で以下のコンポーネントからなる場合、文字列は年year、月month、日dayで表される妥当な日付文字列である:
年なし日付はグレコリオ月とその月の日からなるが、年を伴わない。[GREGORIAN]
与えられた順で以下のコンポーネントからなる場合、文字列は月monthおよび日dayで表される妥当な年なし日付文字列である:
時刻は、時、分、秒、秒以下からなりタイムゾーン情報を持たない、特定の時刻からなる。
与えられた順で以下のコンポーネントからなる場合、文字列は、時hour、分minute、秒secondで表される妥当な時刻文字列である:
ローカル日付および時刻は、年、月、日、時、分、秒、秒以下からなる特定の先発グレゴリオ日付からなるが、タイムゾーン情報を持たない。[GREGORIAN]
与えられた順で以下のコンポーネントからなる場合、文字列は妥当なローカル日付および時刻文字列である:
与えられた順で以下のコンポーネントからなる場合、文字列は妥当な規格化ローカル日付および時刻文字列である:
タイムゾーン オフセットは符号付きの時と分の数字からなる。
次のいずれかからなる場合、文字列は、タイムゾーン オフセットを表す妥当なタイムゾーンオフセット文字列である:
グローバル日付および時刻は、符号付き時分からなるタイムゾーンオフセットとともに年、月、日、時、分、秒、秒以下からなる特定先発グレコリオ暦で構成する。[GREGORIAN]
与えられた順で以下のコンポーネントからなる場合、日付、時刻、タイムゾーン オフセットを表す文字列は妥当なグローバル日付および時刻である:
20世紀半ばにUTCを形成する前の日付の時刻は、UTC(UT1の近似がSI秒を刻む)ではなく、UT1(0°経度での現代の地球太陽時)の見地から表現および解釈されなければならない。タイムゾーンを形成する前の時刻は、適切なローカル時刻とロンドンのグリニッジで観測された時刻との間のおおよその現代的な違いのある明示的なタイムゾーンとともにUT1の時刻として表現および解釈されなければならない。
以下は妥当なグローバル日付および時刻として記述される例の一部である。
"0037-12-13 00:00Z"
↑ネロ(ローマ皇帝)の誕生日にロンドン時を用いた地域での真夜中。これが実際に対応している日付のさらなる議論については下記を参照のこと。
"1979-10-14T12:00:00.001-04:00"
↑夏時間の間にアメリカ東海岸で使用されるタイムゾーンで、1979年10月14日の正午1ミリ秒後。
"8592-01-01T02:09+02:09"
↑8592年1月1日のUTCで夜中。現在の実際のタイムゾーンではない、UTCより早く時刻が2時9分であるタイムゾーンに関連付けられるが、それでもなお、許可される。
以下の日付に関していくつかの注目に値する点がある:
週は、週番号年と週番号からなる。週番号は、月曜日から始まる7日間を示す。以下の定義に従って、このカレンダー システムにおける週番号年は52または53の7日間を持つ。グレゴリオ暦の日付で1969年12月29日(1969-12-29)月曜日で始まる7日間は、1970週番号年で週番号1として定義される。連続した週は連番が付けられる。週番号年で1週目の前の週は、前の週番号年の最終週である。逆もまた同様である。[GREGORIAN]
最初の日(1月1日)が木曜である先発グレゴリオ暦の年year、または最初の日(1月1日)が木曜である先発グレコリオ暦の年yearのいずれかに対応する場合、数字yearとともに週番号年は53週を持つ。ここで、yearは 400 で割り切れる数字、または 4 で割り切れるが 100 で割り切れない数字である。他のすべての週番号年は 52 週である。
53 週をもつ週番号年の最終日の週番号は 53 であり、52 週をもつ週番号年の最終日の週番号は 52 である。
与えられた順で以下のコンポーネントからなる場合、文字列は、週番号年yearおよび週weekを表す妥当な週文字列である:
継続時間は複数秒からなる。
以下のいずれかからなる場合、文字列は、継続時間 t で表す妥当な継続時間文字列である:
継続時間コンポーネントは以下のコンポーネントからなる文字列である:
U+0057 LATIN CAPITAL LETTER W文字
U+0077 LATIN SMALL LETTER Ww文字
U+0044 LATIN CAPITAL LETTER D文字
U+0064 LATIN SMALL LETTER Dd文字
U+0048 LATIN CAPITAL LETTER H文字
U+0068 LATIN SMALL LETTER Hh文字
U+004D LATIN CAPITAL LETTER M文字
U+006D LATIN SMALL LETTER Mm文字
U+0053 LATIN CAPITAL LETTER S文字
U+0073 LATIN SMALL LETTER Ss文字
以下のいずれかである場合、文字列は任意の時刻を持つ妥当な日付文字列である:
単純色は、sRGB色空間の中で各色のコンポーネント赤、緑、青を表す、0から255までの範囲の8ビット数字3つからなる。[SRGB]
正確に7文字長である、最初の文字がU+0023 NUMBER SIGN文字(#)であり、残りの6文字がすべてASCII 16進数字である、最初の2桁は赤コンポーネントを表し、中の2桁は緑コンポーネントを表し、最後の2桁は青コンポーネントを表す16進数である場合、文字列は妥当な単純色である。
妥当な単純色でかつU+0041 LATIN CAPITAL LETTER A文字からU+0046 LATIN CAPITAL LETTER F文字までの範囲の文字を一切使用しない場合、文字列は妥当な小文字の単純色である。
空白区切りトークンの集合は、1つ以上のASCII空白文字によって区切られた0個以上の単語(トークンとして知られる)を含む文字列である。ここで、単語は1つ以上の文字を含み、ASCII空白文字を含まない。
空白区切りトークンの集合を構成する文字列は、先頭または末尾にASCII空白文字を持ってもよい。
順上同の一意な空白区切りトークンの集合は、繰り返しトークンのない空白区切りトークンの集合である。
順序付きの一意な空白区切りトークンの集合は、繰り返しトークンはないが、トークンの順序が意味のある空白区切りトークンの集合である。
空白区切りトークンの集合は時折定義された許可される値の集合を持つ。許可された値の集合が定義される場合、トークンはすべて許可される値のリストでなければならない。その他の値は上適合である。そのような許可される値の集合が用意されない場合、すべての値は適合である。
コンマ区切りトークンの集合は、それぞれ単一のU+002C COMMA文字(,)で区切られる0個以上のトークンを含む文字列である。ここでトークンは0個以上の任意の文字列からなり、先頭も末尾もASCII空白文字でなく、U+002C COMMA文字(,)を含まず、任意でASCII空白文字に囲まれるものである。
コンマ区切りトークンの集合は時に妥当なトークンを構成するさらなる制約を持つ。そのような制限が定義される場合、トークンはすべてその制限に収まるようにしなければならない。その他の値は上適合である。そのような制限が指定されない場合、すべての値は適合である。
タイプtype要素の妥当なハッシュ吊参照は、U+0023 NUMBER SIGN文字(#)の後に同じツリーでタイプtypeをもつ要素のname属性の値に正確に一致する文字列から構成される文字列である。
Media Queriesの 空文字列、ASCII空白文字のみからなる文字列、またはMedia Queriesで与えられる定義に従ったユーザー環境にマッチするメディア クエリーの場合、文字列はユーザー環境に一致する。[MQ]