| 1 |
#regexp |
#pattern |
| 2 |
<span class=secno>* </span>Common microsyntaxes |
<span class=secno>* </span>Common microsyntaxes |
| 3 |
#ja |
#ja |
| 4 |
<span class=secno>$1 </span>共通マイクロ構文 |
<span class=secno>$1 </span>共通マイクロ構文 |
| 5 |
|
|
| 6 |
#en |
#en |
| 7 |
There are various places in HTML that accept particular data types, such |
There are various places in HTML that accept particular data types, such |
| 8 |
as dates or numbers. This section describes what the conformance criteria |
as dates or numbers. This section describes what the conformance criteria |
| 9 |
for content in those formats is, and how to parse them. |
for content in those formats is, and how to parse them. |
| 10 |
#ja |
#ja |
| 11 |
HTML 中のいろいろな場所で、日付や数値のような特定のデータ型を使うことができます。 |
HTML 中のいろいろな場所で、日付や数値のような特定のデータ型を使うことができます。 |
| 12 |
この節では、そのような書式の内容の適合基準は何か、 |
この節では、そのような書式の内容の適合基準は何か、 |
| 13 |
どう構文解析するかを説明します。 |
どう構文解析するかを説明します。 |
| 14 |
|
|
| 15 |
#en |
#en |
| 16 |
Need to go through the whole spec and make sure all the |
Need to go through the whole spec and make sure all the |
| 17 |
attribute values are clearly defined either in terms of microsyntaxes or |
attribute values are clearly defined either in terms of microsyntaxes or |
| 18 |
in terms of other specs, or as "Text" or some such. |
in terms of other specs, or as "Text" or some such. |
| 19 |
#ja |
#ja |
| 20 |
仕様書全体について、すべての属性値がマイクロ構文を使ってか他の仕様書を使ってか「文章」などとして定義されるようにする必要があります。 |
仕様書全体について、すべての属性値がマイクロ構文を使ってか他の仕様書を使ってか「文章」などとして定義されるようにする必要があります。 |
| 21 |
|
|
| 22 |
#regexp |
#pattern |
| 23 |
<span class=secno>* </span>Common parser idioms |
<span class=secno>* </span>Common parser idioms |
| 24 |
#ja |
#ja |
| 25 |
<span class=secno>$1 </span>構文解析器共通慣用句 |
<span class=secno>$1 </span>構文解析器共通慣用句 |
| 26 |
|
|
| 27 |
#en |
#en |
| 28 |
The <dfn id=space title="space character">space characters</dfn>, for |
The <dfn id=space title="space character">space characters</dfn>, for |
| 29 |
the purposes of this specification, are U+0020 SPACE, U+0009 CHARACTER |
the purposes of this specification, are U+0020 SPACE, U+0009 CHARACTER |
| 30 |
TABULATION (tab), U+000A LINE FEED (LF), U+000C FORM FEED (FF), and U+000D |
TABULATION (tab), U+000A LINE FEED (LF), U+000C FORM FEED (FF), and U+000D |
| 31 |
CARRIAGE RETURN (CR). |
CARRIAGE RETURN (CR). |
| 32 |
#ja |
#ja |
| 33 |
<dfn id=space title="space character">間隔文字</dfn>は、 |
<dfn id=space title="space character">間隔文字</dfn>は、 |
| 34 |
この仕様書においては、 U+0020 SPACE, U+0009 CHARACTER |
この仕様書においては、 U+0020 SPACE, U+0009 CHARACTER |
| 35 |
TABULATION (tab)、U+000A LINE FEED (LF)、U+000C FORM FEED (FF)、 U+000D |
TABULATION (tab)、U+000A LINE FEED (LF)、U+000C FORM FEED (FF)、 U+000D |
| 36 |
CARRIAGE RETURN (CR) です。 |
CARRIAGE RETURN (CR) です。 |
| 37 |
|
|
| 38 |
#en |
#en |
| 39 |
Some of the micro-parsers described below follow the pattern of having |
Some of the micro-parsers described below follow the pattern of having |
| 40 |
an <var title="">input</var> variable that holds the string being parsed, |
an <var title="">input</var> variable that holds the string being parsed, |
| 41 |
and having a <var title="">position</var> variable pointing at the next |
and having a <var title="">position</var> variable pointing at the next |
| 42 |
character to parse in <var title="">input</var>. |
character to parse in <var title="">input</var>. |
| 43 |
#ja |
#ja |
| 44 |
これ以降で説明するマイクロ構文解析器のいくつかは、構文解析される文字列を保持する |
これ以降で説明するマイクロ構文解析器のいくつかは、構文解析される文字列を保持する |
| 45 |
<var title="">input</var> 変数を持ち、 <var title="">input</var> |
<var title="">input</var> 変数を持ち、 <var title="">input</var> |
| 46 |
中で次に構文解析する文字を指す <var title="">position</var> |
中で次に構文解析する文字を指す <var title="">position</var> |
| 47 |
変数を持つというパターンに従っています。 |
変数を持つというパターンに従っています。 |
| 48 |
|
|
| 49 |
#en |
#en |
| 50 |
For parsers based on this pattern, a step that requires the user agent |
For parsers based on this pattern, a step that requires the user agent |
| 51 |
to <dfn id=collect>collect a sequence of characters</dfn> means that the |
to <dfn id=collect>collect a sequence of characters</dfn> means that the |
| 52 |
following algorithm must be run, with <var title="">characters</var> being |
following algorithm must be run, with <var title="">characters</var> being |
| 53 |
the set of characters that can be collected: |
the set of characters that can be collected: |
| 54 |
#ja |
#ja |
| 55 |
このパターンに従う構文解析器において、利用者エージェントが<dfn id=collect>文字列を集める</dfn>ことを要求している段階は、 |
このパターンに従う構文解析器において、利用者エージェントが<dfn id=collect>文字列を集める</dfn>ことを要求している段階は、 |
| 56 |
次の算法を、 <var title="">characters</var> |
次の算法を、 <var title="">characters</var> |
| 57 |
が収集できる文字の集合であるとして実行しなければ[[MUST:ならない]]ことを意味しています。 |
が収集できる文字の集合であるとして実行しなければ[[MUST:ならない]]ことを意味しています。 |
| 58 |
|
|
| 59 |
#en |
#en |
| 60 |
Let <var title="">input</var> and <var title="">position</var> be the |
Let <var title="">input</var> and <var title="">position</var> be the |
| 61 |
same variables as those of the same name in the algorithm that invoked |
same variables as those of the same name in the algorithm that invoked |
| 62 |
these steps. |
these steps. |
| 63 |
#ja |
#ja |
| 64 |
<var title="">input</var> と <var title="">position</var> |
<var title="">input</var> と <var title="">position</var> |
| 65 |
を、これらの段階を呼び出した算法中の同名の変数と同じものとします。 |
を、これらの段階を呼び出した算法中の同名の変数と同じものとします。 |
| 66 |
|
|
| 67 |
#en |
#en |
| 68 |
Let <var title="">result</var> be the empty string. |
Let <var title="">result</var> be the empty string. |
| 69 |
#ja |
#ja |
| 70 |
<var title="">result</var> を空文字列とします。 |
<var title="">result</var> を空文字列とします。 |
| 71 |
|
|
| 72 |
#en |
#en |
| 73 |
While <var title="">position</var> doesn't point past the end of <var |
While <var title="">position</var> doesn't point past the end of <var |
| 74 |
title="">input</var> and the character at <var title="">position</var> |
title="">input</var> and the character at <var title="">position</var> |
| 75 |
is one of the <var title="">characters</var>, append that character to |
is one of the <var title="">characters</var>, append that character to |
| 76 |
the end of <var title="">result</var> and advance <var |
the end of <var title="">result</var> and advance <var |
| 77 |
title="">position</var> to the next character in <var |
title="">position</var> to the next character in <var |
| 78 |
title="">input</var>. |
title="">input</var>. |
| 79 |
#ja |
#ja |
| 80 |
<var title="">position</var> が <var |
<var title="">position</var> が <var |
| 81 |
title="">input</var> の終わりの更に先を指しておらず、 <var title="">position</var> |
title="">input</var> の終わりの更に先を指しておらず、 <var title="">position</var> |
| 82 |
の文字が <var title="">characters</var> のうちの1つである間、 |
の文字が <var title="">characters</var> のうちの1つである間、 |
| 83 |
その文字を <var title="">result</var> の終わりに追加し、 <var |
その文字を <var title="">result</var> の終わりに追加し、 <var |
| 84 |
title="">position</var> を <var |
title="">position</var> を <var |
| 85 |
title="">input</var> の次の文字に進めます。 |
title="">input</var> の次の文字に進めます。 |
| 86 |
|
|
| 87 |
#en |
#en |
| 88 |
Return <var title="">result</var>. |
Return <var title="">result</var>. |
| 89 |
#ja |
#ja |
| 90 |
<var title="">result</var> を返します。 |
<var title="">result</var> を返します。 |
| 91 |
|
|
| 92 |
#en |
#en |
| 93 |
The step <dfn id=skip-whitespace>skip whitespace</dfn> means that the |
The step <dfn id=skip-whitespace>skip whitespace</dfn> means that the |
| 94 |
user agent must <a href="#collect">collect a sequence of characters</a> |
user agent must <a href="#collect">collect a sequence of characters</a> |
| 95 |
that are <a href="#space" title="space character">space characters</a>. |
that are <a href="#space" title="space character">space characters</a>. |
| 96 |
The step <dfn id=skip->skip Zs characters</dfn> means that the user agent |
The step <dfn id=skip->skip Zs characters</dfn> means that the user agent |
| 97 |
must <a href="#collect">collect a sequence of characters</a> that are in |
must <a href="#collect">collect a sequence of characters</a> that are in |
| 98 |
the Unicode character class Zs. In both cases, the collected characters |
the Unicode character class Zs. In both cases, the collected characters |
| 99 |
are not used. <a href="#refsUNICODE">[UNICODE]</a> |
are not used. <a href="#refsUNICODE">[UNICODE]</a> |
| 100 |
#ja |
#ja |
| 101 |
<dfn id=skip-whitespace>空白を飛ばす</dfn>段階は、 |
<dfn id=skip-whitespace>空白を飛ばす</dfn>段階は、 |
| 102 |
利用者エージェントが<a href="#space" title="space character">間隔文字</a>である<a href="#collect">文字列を集め</a>なければ[[MUST:ならない]]ことを意味します。 |
利用者エージェントが<a href="#space" title="space character">間隔文字</a>である<a href="#collect">文字列を集め</a>なければ[[MUST:ならない]]ことを意味します。 |
| 103 |
<dfn id=skip->Zs 文字を飛ばす</dfn>段階は、 |
<dfn id=skip->Zs 文字を飛ばす</dfn>段階は、 |
| 104 |
利用者エージェントが Unicode 文字クラス Zs に含まれる<a href="#collect">文字列を集め</a>なければ[[MUST:ならない]]ことを意味します。<a href="#collect">文字列を集め</a>なければ[[MUST:ならない]]ことを意味します。 |
利用者エージェントが Unicode 文字クラス Zs に含まれる<a href="#collect">文字列を集め</a>なければ[[MUST:ならない]]ことを意味します。<a href="#collect">文字列を集め</a>なければ[[MUST:ならない]]ことを意味します。 |
| 105 |
どちらの場合も、集めた文字は使いません。 <a href="#refsUNICODE">[UNICODE]</a> |
どちらの場合も、集めた文字は使いません。 <a href="#refsUNICODE">[UNICODE]</a> |
| 106 |
|
|
| 107 |
#regexp |
#pattern |
| 108 |
<span class=secno>* </span>Boolean attributes |
<span class=secno>* </span>Boolean attributes |
| 109 |
#ja |
#ja |
| 110 |
<span class=secno>$1 </span>ブール型属性 |
<span class=secno>$1 </span>ブール型属性 |
| 111 |
|
|
| 112 |
#en |
#en |
| 113 |
A number of attributes in HTML5 are <dfn id=boolean0 title="boolean |
A number of attributes in HTML5 are <dfn id=boolean0 title="boolean |
| 114 |
attribute">boolean attributes</dfn>. The presence of a boolean attribute |
attribute">boolean attributes</dfn>. The presence of a boolean attribute |
| 115 |
on an element represents the true value, and the absence of the attribute |
on an element represents the true value, and the absence of the attribute |
| 116 |
represents the false value. |
represents the false value. |
| 117 |
#ja |
#ja |
| 118 |
HTML5 の数々の属性は<dfn id=boolean0 title="boolean |
HTML5 の数々の属性は<dfn id=boolean0 title="boolean |
| 119 |
attribute">ブール型属性</dfn>です。要素にブール型属性が存在すると真の値を表し、 |
attribute">ブール型属性</dfn>です。要素にブール型属性が存在すると真の値を表し、 |
| 120 |
存在しないと偽の値を表します。 |
存在しないと偽の値を表します。 |
| 121 |
|
|
| 122 |
#en |
#en |
| 123 |
If the attribute is present, its value must either be the empty string |
If the attribute is present, its value must either be the empty string |
| 124 |
or a value that is a case-insensitive <!-- XXX ASCII --> match for the |
or a value that is an <a href="#ascii">ASCII case-insensitive</a> match |
| 125 |
attribute's canonical name, with no leading or trailing whitespace. |
for the attribute's canonical name, with no leading or trailing |
| 126 |
#ja |
whitespace. |
| 127 |
属性が存在する場合、値は、 |
#ja |
| 128 |
空文字列か大文字・小文字を区別しないと属性の正準名と一致する |
属性が存在する場合、その値は空文字列か、または |
| 129 |
(先頭にも末尾にも空白がない) 値のいずれかでなければ[[MUST:なりません]]。 |
<a href="#ascii">ASCII 大文字・小文字不区別</a>で属性の正準名と一致するような |
| 130 |
|
(先頭にも末尾にも空白がない) 値のいずれかでなければ[[MUST:なりません]]。 |
| 131 |
#regexp |
|
| 132 |
<span class=secno>* </span>Numbers |
#pattern |
| 133 |
#ja |
<span class=secno>* </span>Numbers |
| 134 |
<span class=secno>$1 </span>数値 |
#ja |
| 135 |
|
<span class=secno>$1 </span>数値 |
| 136 |
#regexp |
|
| 137 |
<span class=secno>* </span>Unsigned integers |
#pattern |
| 138 |
#ja |
<span class=secno>* </span>Unsigned integers |
| 139 |
<span class=secno>$1 </span>符号無し整数 |
#ja |
| 140 |
|
<span class=secno>$1 </span>符号無し整数 |
| 141 |
#en |
|
| 142 |
A string is a <dfn id=valid0>valid non-negative integer</dfn> if it |
#en |
| 143 |
consists of one of more characters in the range U+0030 DIGIT ZERO (0) to |
A string is a <dfn id=valid>valid non-negative integer</dfn> if it |
| 144 |
U+0039 DIGIT NINE (9). |
consists of one of more characters in the range U+0030 DIGIT ZERO (0) to |
| 145 |
#ja |
U+0039 DIGIT NINE (9). |
| 146 |
文字列は、範囲 U+0030 DIGIT ZERO (0) から U+0039 DIGIT NINE (9) |
#ja |
| 147 |
までの文字1文字以上で構成される場合、<dfn id=valid0>妥当な非負整数</dfn>です。 |
文字列は、範囲 U+0030 DIGIT ZERO (0) ~ U+0039 DIGIT NINE (9) |
| 148 |
|
の文字1文字以上で構成される場合、<dfn id=valid>妥当な非負整数</dfn>です。 |
| 149 |
#en |
|
| 150 |
The <dfn id=rules>rules for parsing non-negative integers</dfn> are as |
#en |
| 151 |
given in the following algorithm. When invoked, the steps must be followed |
The <dfn id=rules>rules for parsing non-negative integers</dfn> are as |
| 152 |
in the order given, aborting at the first step that returns a value. This |
given in the following algorithm. When invoked, the steps must be followed |
| 153 |
algorithm will either return zero, a positive integer, or an error. |
in the order given, aborting at the first step that returns a value. This |
| 154 |
Leading spaces are ignored. Trailing spaces and indeed any trailing |
algorithm will either return zero, a positive integer, or an error. |
| 155 |
garbage characters are ignored. |
Leading spaces are ignored. Trailing spaces and indeed any trailing |
| 156 |
#ja |
garbage characters are ignored. |
| 157 |
<dfn id=rules>非負整数を構文解析する規則</dfn>は次の算法で与えられるものです。 |
#ja |
| 158 |
この算法が呼び出された時には、与えられた順に段階に従い、 |
<dfn id=rules>非負整数を構文解析する規則</dfn>は次の算法で与えられるものです。 |
| 159 |
値を返す最初の段階で中断しなければ[[MUST:なりません]]。 |
この算法が呼び出された時には、与えられた順に段階に従い、 |
| 160 |
この算法は零か正整数か誤りを返します。 |
値を返す最初の段階で中断しなければ[[MUST:なりません]]。 |
| 161 |
先頭の間隔は無視されます。末尾の空白、というかごみ文字列はすべて無視されます。 |
この算法は零か正整数か誤りを返します。 |
| 162 |
|
先頭の間隔は無視されます。末尾の空白、というかごみ文字列はすべて無視されます。 |
| 163 |
#en |
|
| 164 |
Let <var title="">input</var> be the string being parsed. |
#en |
| 165 |
#ja |
Let <var title="">input</var> be the string being parsed. |
| 166 |
<var title="">input</var> を構文解析される文字列とします。 |
#ja |
| 167 |
|
<var title="">input</var> を構文解析される文字列とします。 |
| 168 |
#en |
|
| 169 |
Let <var title="">position</var> be a pointer into <var |
#en |
| 170 |
title="">input</var>, initially pointing at the start of the string. |
Let <var title="">position</var> be a pointer into <var |
| 171 |
#ja |
title="">input</var>, initially pointing at the start of the string. |
| 172 |
<var title="">position</var> を <var |
#ja |
| 173 |
title="">input</var> 中の指示子とし、初期位置を文字列の始めとします。 |
<var title="">position</var> を <var |
| 174 |
|
title="">input</var> 中の指示子とし、初期位置を文字列の始めとします。 |
| 175 |
#en |
|
| 176 |
Let <var title="">value</var> have the value 0. |
#en |
| 177 |
#ja |
Let <var title="">value</var> have the value 0. |
| 178 |
<var title="">value</var> を値 0 にします。 |
#ja |
| 179 |
|
<var title="">value</var> を値 0 にします。 |
| 180 |
#en |
|
| 181 |
<a href="#skip-whitespace">Skip whitespace.</a> |
#en |
| 182 |
#ja |
<a href="#skip-whitespace">Skip whitespace</a>. |
| 183 |
<a href="#skip-whitespace">空白を読み飛ばします。</a> |
#ja |
| 184 |
|
<a href="#skip-whitespace">空白を読み飛ばします</a>。 |
| 185 |
#en |
|
| 186 |
If <var title="">position</var> is past the end of <var |
#en |
| 187 |
title="">input</var>, return an error. |
If <var title="">position</var> is past the end of <var |
| 188 |
#ja |
title="">input</var>, return an error. |
| 189 |
<var title="">position</var> が <var |
#ja |
| 190 |
title="">input</var> の終わりを過ぎていれば、誤りを返します。 |
<var title="">position</var> が <var |
| 191 |
|
title="">input</var> の終わりを過ぎていれば、誤りを返します。 |
| 192 |
#en |
|
| 193 |
If the next character is not one of U+0030 DIGIT ZERO (0) .. U+0039 |
#en |
| 194 |
DIGIT NINE (9), then return an error. |
If the next character is not one of U+0030 DIGIT ZERO (0) .. U+0039 |
| 195 |
#ja |
DIGIT NINE (9), then return an error. |
| 196 |
次の文字が U+0030 DIGIT ZERO (0) 〜 U+0039 |
#ja |
| 197 |
DIGIT NINE (9) のうちの1つでない場合、誤りを返します。 |
次の文字が U+0030 DIGIT ZERO (0) 〜 U+0039 |
| 198 |
|
DIGIT NINE (9) のうちの1つでない場合、誤りを返します。 |
| 199 |
#en |
|
| 200 |
If the next character is one of U+0030 DIGIT ZERO (0) .. U+0039 DIGIT |
#en |
| 201 |
NINE (9): |
If the next character is one of U+0030 DIGIT ZERO (0) .. U+0039 DIGIT |
| 202 |
#ja |
NINE (9): |
| 203 |
次の文字が U+0030 DIGIT ZERO (0) 〜 U+0039 |
#ja |
| 204 |
DIGIT NINE (9) のうちの1つである場合: |
次の文字が U+0030 DIGIT ZERO (0) 〜 U+0039 |
| 205 |
|
DIGIT NINE (9) のうちの1つである場合: |
| 206 |
#en |
|
| 207 |
Multiply <var title="">value</var> by ten. |
#en |
| 208 |
#ja |
Multiply <var title="">value</var> by ten. |
| 209 |
<var title="">value</var> を10倍します。 |
#ja |
| 210 |
|
<var title="">value</var> を10倍します。 |
| 211 |
#en |
|
| 212 |
Add the value of the current character (0..9) to <var |
#en |
| 213 |
title="">value</var>. |
Add the value of the current character (0..9) to <var |
| 214 |
#ja |
title="">value</var>. |
| 215 |
現在の文字の値 (0〜9) を <var |
#ja |
| 216 |
title="">value</var> に加えます。 |
現在の文字の値 (0〜9) を <var |
| 217 |
|
title="">value</var> に加えます。 |
| 218 |
#en |
|
| 219 |
Advance <var title="">position</var> to the next character. |
#en |
| 220 |
#ja |
Advance <var title="">position</var> to the next character. |
| 221 |
<var title="">position</var> を次の文字に進めます。 |
#ja |
| 222 |
|
<var title="">position</var> を次の文字に進めます。 |
| 223 |
#regexp |
|
| 224 |
If <var title="">position</var> is not past the end of <var |
#pattern |
| 225 |
title="">input</var>, return to the top of step * in the overall |
If <var title="">position</var> is not past the end of <var |
| 226 |
algorithm (that's the step within which these substeps find |
title="">input</var>, return to the top of step * in the overall |
| 227 |
themselves). |
algorithm (that's the step within which these substeps find |
| 228 |
#ja |
themselves). |
| 229 |
<var title="">position</var> が <var |
#ja |
| 230 |
title="">input</var> の終わりを過ぎていなければ、 |
<var title="">position</var> が <var |
| 231 |
算法全体の段階 $1 (これらの部分段階自体が含まれている段階) の先頭に返ります。 |
title="">input</var> の終わりを過ぎていなければ、 |
| 232 |
|
算法全体の段階 $1 (これらの部分段階自体が含まれている段階) の先頭に返ります。 |
| 233 |
#en |
|
| 234 |
Return <var title="">value</var>. |
#en |
| 235 |
#ja |
Return <var title="">value</var>. |
| 236 |
<var title="">value</var> を返します。 |
#ja |
| 237 |
|
<var title="">value</var> を返します。 |
| 238 |
|
|
| 239 |
|
#pattern |
| 240 |
|
<span class=secno>* </span>Signed integers |
| 241 |
|
#ja |
| 242 |
|
<span class=secno>$1 </span>符号付き整数 |
| 243 |
|
|
| 244 |
|
#en |
| 245 |
|
A string is a <dfn id=valid0>valid integer</dfn> if it consists of one |
| 246 |
|
of more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE |
| 247 |
|
(9), optionally prefixed with a U+002D HYPHEN-MINUS ("-") character. |
| 248 |
|
#ja |
| 249 |
|
文字列は、範囲 U+0030 DIGIT ZERO (0) ~ U+0039 DIGIT NINE |
| 250 |
|
(9) の文字1文字以上で構成され、任意選択で接頭辞として U+002D HYPHEN-MINUS ("-") |
| 251 |
|
文字がある場合、<dfn id=valid0>妥当な整数</dfn>です。 |
| 252 |
|
|
| 253 |
|
#en |
| 254 |
|
The <dfn id=rules0>rules for parsing integers</dfn> are similar to the |
| 255 |
|
rules for non-negative integers, and are as given in the following |
| 256 |
|
algorithm. When invoked, the steps must be followed in the order given, |
| 257 |
|
aborting at the first step that returns a value. This algorithm will |
| 258 |
|
either return an integer or an error. Leading spaces are ignored. Trailing |
| 259 |
|
spaces and trailing garbage characters are ignored. |
| 260 |
|
#ja |
| 261 |
|
<dfn id=rules0>整数を構文解析する規則</dfn>は、非負整数用の規則と似ており、 |
| 262 |
|
次の算法により与えられます。これらの段階は、呼び出された場合、 |
| 263 |
|
与えられた順序に従い実行し、初めて値を返す段階で停止しなければ[[MUST:なりません]]。 |
| 264 |
|
この算法は整数か誤りのいずれかを返します。先頭の間隔は無視されます。 |
| 265 |
|
末尾の間隔や末尾のごみ文字は無視されます。 |
| 266 |
|
|
| 267 |
|
#en |
| 268 |
|
Let <var title="">sign</var> have the value "positive". |
| 269 |
|
#ja |
| 270 |
|
<var title="">sign</var> を、「正」という値を持つようにします。 |
| 271 |
|
|
| 272 |
|
#en |
| 273 |
|
If the character indicated by <var title="">position</var> (the first |
| 274 |
|
character) is a U+002D HYPHEN-MINUS ("-") character: |
| 275 |
|
#ja |
| 276 |
|
<var title="">position</var> が示す文字 (最初の文字) |
| 277 |
|
が U+002D HYPHEN-MINUS ("-") 文字である場合、 |
| 278 |
|
|
| 279 |
|
#en |
| 280 |
|
Let <var title="">sign</var> be "negative". |
| 281 |
|
#ja |
| 282 |
|
<var title="">sign</var> を「負」とします。 |
| 283 |
|
|
| 284 |
|
#en |
| 285 |
|
If <var title="">sign</var> is "positive", return <var |
| 286 |
|
title="">value</var>, otherwise return 0-<var title="">value</var>. |
| 287 |
|
#ja |
| 288 |
|
<var title="">sign</var> が「正」の場合、 <var |
| 289 |
|
title="">value</var> を返します。そうでない場合、 |
| 290 |
|
0-<var title="">value</var> を返します。 |
| 291 |
|
|
| 292 |
|
#pattern |
| 293 |
|
<span class=secno>* </span>Real numbers |
| 294 |
|
#ja |
| 295 |
|
<span class=secno>$1 </span>実数 |
| 296 |
|
|
| 297 |
|
#en |
| 298 |
|
A string is a <dfn id=valid1>valid floating point number</dfn> if it |
| 299 |
|
consists of one of more characters in the range U+0030 DIGIT ZERO (0) to |
| 300 |
|
U+0039 DIGIT NINE (9), optionally with a single U+002E FULL STOP (".") |
| 301 |
|
character somewhere (either before these numbers, in between two numbers, |
| 302 |
|
or after the numbers), all optionally prefixed with a U+002D HYPHEN-MINUS |
| 303 |
|
("-") character. |
| 304 |
|
#ja |
| 305 |
|
文字列は、範囲 U+0030 DIGIT ZERO (0) ~ |
| 306 |
|
U+0039 DIGIT NINE (9) の文字1文字以上で構成され、 |
| 307 |
|
任意選択で U+002E FULL STOP (".") 文字1文字がどこか (数字の前か、 |
| 308 |
|
2つの数字の間か、数字の後のいずれか) を含み、その全体について任意選択で接頭辞として |
| 309 |
|
U+002D HYPHEN-MINUS ("-") 文字がある場合、<dfn id=valid1>妥当な浮動小数点数</dfn>です。 |
| 310 |
|
|
| 311 |
|
#en |
| 312 |
|
The <dfn id=rules1>rules for parsing floating point number values</dfn> |
| 313 |
|
are as given in the following algorithm. As with the previous algorithms, |
| 314 |
|
when this one is invoked, the steps must be followed in the order given, |
| 315 |
|
aborting at the first step that returns a value. This algorithm will |
| 316 |
|
either return a number or an error. Leading spaces are ignored. Trailing |
| 317 |
|
spaces and garbage characters are ignored. |
| 318 |
|
#ja |
| 319 |
|
<dfn id=rules1>浮動小数点数値を構文解析する規則</dfn>は次の算法により与えられる通りです。 |
| 320 |
|
前述の算法と同様で、この算法が呼び出された時も、 |
| 321 |
|
与えられた順序に従い実行し、値を返す最初の段階で停止しなければ[[MUST:なりません]]。 |
| 322 |
|
この算法は、数か誤りのいずれかを返します。先頭の間隔は無視されます。 |
| 323 |
|
末尾の間隔とごみ文字は無視されます。 |
| 324 |
|
|
| 325 |
|
#en |
| 326 |
|
If the next character is not one of U+0030 DIGIT ZERO (0) .. U+0039 |
| 327 |
|
DIGIT NINE (9) or U+002E FULL STOP ("."), then return an error. |
| 328 |
|
#ja |
| 329 |
|
次の文字が U+0030 DIGIT ZERO (0) ~ U+0039 |
| 330 |
|
DIGIT NINE (9) か U+002E FULL STOP (".") のいずれかでなければ、 |
| 331 |
|
誤りを返します。 |
| 332 |
|
|
| 333 |
|
#en |
| 334 |
|
If the next character is U+002E FULL STOP ("."), but either that is |
| 335 |
|
the last character or the character after that one is not one of U+0030 |
| 336 |
|
DIGIT ZERO (0) .. U+0039 DIGIT NINE (9), then return an error. |
| 337 |
|
#ja |
| 338 |
|
次の文字が U+002E FULL STOP (".") でありながら、 |
| 339 |
|
これが最後の文字であるか、またはその次の文字が U+0030 |
| 340 |
|
DIGIT ZERO (0) ~ U+0039 DIGIT NINE (9) のいずれかではない場合、 |
| 341 |
|
誤りを返します。 |
| 342 |
|
|
| 343 |
|
#en |
| 344 |
|
If <var title="">position</var> is past the end of <var |
| 345 |
|
title="">input</var>, then if <var title="">sign</var> is "positive", |
| 346 |
|
return <var title="">value</var>, otherwise return 0-<var |
| 347 |
|
title="">value</var>. |
| 348 |
|
#ja |
| 349 |
|
<var title="">position</var> が <var |
| 350 |
|
title="">input</var> の終わりを過ぎている場合には、 |
| 351 |
|
<var title="">sign</var> が「正」であるなら <var title="">value</var> |
| 352 |
|
を返し、そうでないなら 0-<var |
| 353 |
|
title="">value</var> を返します。 |
| 354 |
|
|
| 355 |
|
#en |
| 356 |
|
Otherwise return to the top of step 10 in the overall algorithm |
| 357 |
|
(that's the step within which these substeps find themselves). |
| 358 |
|
#ja |
| 359 |
|
そうでない場合、全体の算法の段階 10 (これら部分段階が含まれている段階) |
| 360 |
|
の先頭に戻ります。 |
| 361 |
|
|
| 362 |
|
#en |
| 363 |
|
Otherwise, if the next character is not a U+002E FULL STOP ("."), then |
| 364 |
|
if <var title="">sign</var> is "positive", return <var |
| 365 |
|
title="">value</var>, otherwise return 0-<var title="">value</var>. |
| 366 |
|
#ja |
| 367 |
|
そうでない場合、次の文字が U+002E FULL STOP (".") でない場合には、 |
| 368 |
|
<var title="">sign</var> が「正」であるなら <var title="">value</var> |
| 369 |
|
を返し、そうでないなら 0-<var |
| 370 |
|
title="">value</var> を返します。 |
| 371 |
|
|
| 372 |
|
#en |
| 373 |
|
The next character is a U+002E FULL STOP ("."). Advance <var |
| 374 |
|
title="">position</var> to the character after that. |
| 375 |
|
#ja |
| 376 |
|
次の文字は U+002E FULL STOP (".") です。 <var |
| 377 |
|
title="">position</var> をその次の文字に進めます。 |
| 378 |
|
|
| 379 |
|
#en |
| 380 |
|
Let <var title="">divisor</var> be 1. |
| 381 |
|
#ja |
| 382 |
|
<var title="">divisor</var> を 1 とします。 |
| 383 |
|
|
| 384 |
|
#en |
| 385 |
|
Multiply <var title="">divisor</var> by ten. |
| 386 |
|
#ja |
| 387 |
|
<var title="">divisor</var> に 10 を掛けます。 |
| 388 |
|
|
| 389 |
|
#en |
| 390 |
|
Add the value of the current character (0..9) divided by <var |
| 391 |
|
title="">divisor</var>, to <var title="">value</var>. |
| 392 |
|
#ja |
| 393 |
|
現在の文字の値 (0~9) を <var |
| 394 |
|
title="">divisor</var> で割った値を、<var title="">value</var> |
| 395 |
|
に加えます。 |
| 396 |
|
|
| 397 |
|
#en |
| 398 |
|
Otherwise return to the top of step 14 in the overall algorithm |
| 399 |
|
(that's the step within which these substeps find themselves). |
| 400 |
|
#ja |
| 401 |
|
そうでない場合、全体の算法の段階 14 (これら部分段階が含まれている段階) の先頭に戻ります。 |
| 402 |
|
|
| 403 |
|
#en |
| 404 |
|
Otherwise, if <var title="">sign</var> is "positive", return <var |
| 405 |
|
title="">value</var>, otherwise return 0-<var title="">value</var>. |
| 406 |
|
#ja |
| 407 |
|
そうでない場合、 |
| 408 |
|
<var title="">sign</var> が「正」であるなら <var title="">value</var> |
| 409 |
|
を返し、そうでないなら 0-<var |
| 410 |
|
title="">value</var> を返します。 |
| 411 |
|
|
| 412 |
|
#pattern |
| 413 |
|
<span class=secno>* </span>Ratios |
| 414 |
|
#ja |
| 415 |
|
<span class=secno>$1 </span>比率 |
| 416 |
|
|
| 417 |
|
#en |
| 418 |
|
The algorithms described in this section are used by the |
| 419 |
|
<code><a href="#progress">progress</a></code> and <code><a |
| 420 |
|
href="#meter">meter</a></code> elements. |
| 421 |
|
#ja |
| 422 |
|
この節で説明する算法は、 <code><a href="#progress">progress</a></code> 要素と |
| 423 |
|
<code><a |
| 424 |
|
href="#meter">meter</a></code> 要素で使います。 |
| 425 |
|
|
| 426 |
|
#en |
| 427 |
|
A <dfn id=valid2>valid denominator punctuation character</dfn> is one of |
| 428 |
|
the characters from the table below. There is <dfn id=a-value |
| 429 |
|
title="values associated with denominator punctuation characters">a value |
| 430 |
|
associated with each denominator punctuation character</dfn>, as shown in |
| 431 |
|
the table below. |
| 432 |
|
#ja |
| 433 |
|
<dfn id=valid2>妥当な分母句読点文字</dfn>は、 |
| 434 |
|
次の表の文字のいずれかです。次の表に示すように、<dfn id=a-value |
| 435 |
|
title="values associated with denominator punctuation characters">各分母句読点文字には関連付けられた値</dfn>があります。 |
| 436 |
|
|
| 437 |
|
#en |
| 438 |
|
Denominator Punctuation Character |
| 439 |
|
#ja |
| 440 |
|
分母句読点文字 |
| 441 |
|
|
| 442 |
|
#en |
| 443 |
|
Value |
| 444 |
|
#ja |
| 445 |
|
値 |
| 446 |
|
|
| 447 |
|
#en |
| 448 |
|
The <dfn id=steps>steps for finding one or two numbers of a ratio in a |
| 449 |
|
string</dfn> are as follows: |
| 450 |
|
#ja |
| 451 |
|
<dfn id=steps>文字列中の比率の1つか2つの数字を探す段階</dfn>は、次の通りです。 |
| 452 |
|
|
| 453 |
|
#en |
| 454 |
|
If the string is empty, then return nothing and abort these steps. |
| 455 |
|
#ja |
| 456 |
|
文字列が空である場合、何も返さず、これらの段階を停止します。 |
| 457 |
|
|
| 458 |
|
#en |
| 459 |
|
<a href="#find-a">Find a number</a> in the string according to the |
| 460 |
|
algorithm below, starting at the start of the string. |
| 461 |
|
#ja |
| 462 |
|
後述の算法に従い、文字列のはじめから開始して<a href="#find-a">数を探します</a>。 |
| 463 |
|
|
| 464 |
|
#en |
| 465 |
|
If the sub-algorithm in step 2 returned nothing or returned an error |
| 466 |
|
condition, return nothing and abort these steps. |
| 467 |
|
#ja |
| 468 |
|
段階 2 の部分算法が何も返さなかったか、誤り条件を返した場合には、 |
| 469 |
|
何も返さず、これらの段階を停止します。 |
| 470 |
|
|
| 471 |
|
#en |
| 472 |
|
Set <var title="">number1</var> to the number returned by the |
| 473 |
|
sub-algorithm in step 2. |
| 474 |
|
#ja |
| 475 |
|
<var title="">number1</var> を、段階 2 の部分算法が返した数とします。 |
| 476 |
|
|
| 477 |
|
#en |
| 478 |
|
Starting with the character immediately after the last one examined by |
| 479 |
|
the sub-algorithm in step 2, skip any characters in the string that are |
| 480 |
|
in the Unicode character class Zs (this might match zero characters). <a |
| 481 |
|
href="#refsUNICODE">[UNICODE]</a> |
| 482 |
|
#ja |
| 483 |
|
段階 2 の部分算法が調べた最後の文字の直後の文字から始めて、文字列中の Unicode |
| 484 |
|
文字クラス Zs の文字を飛ばします (これに一致するのは零文字かもしれません)。 <a |
| 485 |
|
href="#refsUNICODE">[UNICODE]</a> |
| 486 |
|
|
| 487 |
|
#en |
| 488 |
|
If there are still further characters in the string, and the next |
| 489 |
|
character in the string is a <a href="#valid2">valid denominator |
| 490 |
|
punctuation character</a>, set <var title="">denominator</var> to that |
| 491 |
|
character. |
| 492 |
|
#ja |
| 493 |
|
文字列中に更に文字がまだある場合で、文字列中の次の文字が<a href="#valid2">妥当な分母句読点文字</a>である場合には、 |
| 494 |
|
<var title="">denominator</var> をその文字に設定します。 |
| 495 |
|
|
| 496 |
|
#en |
| 497 |
|
If the string contains any other characters in the range U+0030 DIGIT |
| 498 |
|
ZERO to U+0039 DIGIT NINE, but <var title="">denominator</var> was given |
| 499 |
|
a value in the step 6, return nothing and abort these steps. |
| 500 |
|
#ja |
| 501 |
|
文字列が範囲 U+0030 DIGIT |
| 502 |
|
ZERO ~ U+0039 DIGIT NINE の文字をまだ他に含んでいる場合で、 |
| 503 |
|
段階 6 で <var title="">denominator</var> に値が与えられた場合には、 |
| 504 |
|
何も返さず、これらの段階を停止します。 |
| 505 |
|
|
| 506 |
|
#en |
| 507 |
|
Otherwise, if <var title="">denominator</var> was given a value in |
| 508 |
|
step 6, return <var title="">number1</var> and <var |
| 509 |
|
title="">denominator</var> and abort these steps. |
| 510 |
|
#ja |
| 511 |
|
そうでない場合、 <var title="">denominator</var> が段階 6 |
| 512 |
|
で値を与えられた場合には、 <var title="">number1</var> と <var |
| 513 |
|
title="">denominator</var> を返し、これらの段階を停止します。 |
| 514 |
|
|
| 515 |
|
#en |
| 516 |
|
<a href="#find-a">Find a number</a> in the string again, starting |
| 517 |
|
immediately after the last character that was examined by the |
| 518 |
|
sub-algorithm in step 2. |
| 519 |
|
#ja |
| 520 |
|
文字列中を更に<a href="#find-a">数を探します</a>が、 |
| 521 |
|
段階 2 の部分算法で調べた最後の文字の直後からはじめます。 |
| 522 |
|
|
| 523 |
|
#en |
| 524 |
|
If the sub-algorithm in step 9 returned nothing or an error condition, |
| 525 |
|
return nothing and abort these steps. |
| 526 |
|
#ja |
| 527 |
|
段階 9 の部分算法が何も返さないか、誤り条件を返す場合、 |
| 528 |
|
何も返さず、これらの段階を停止します。 |
| 529 |
|
|
| 530 |
|
#en |
| 531 |
|
Set <var title="">number2</var> to the number returned by the |
| 532 |
|
sub-algorithm in step 9. |
| 533 |
|
#ja |
| 534 |
|
<var title="">number2</var> を、段階 9 の部分算法が返した数とします。 |
| 535 |
|
|
| 536 |
|
#en |
| 537 |
|
If there are still further characters in the string, and the next |
| 538 |
|
character in the string is a <a href="#valid2">valid denominator |
| 539 |
|
punctuation character</a>, return nothing and abort these steps. |
| 540 |
|
#ja |
| 541 |
|
文字列中に更に文字がまだある場合で、文字列中の次の文字が<a href="#valid2">妥当な分母句読点文字</a>である場合、 |
| 542 |
|
何も返さず、これらの段階を停止します。 |
| 543 |
|
|
| 544 |
|
#en |
| 545 |
|
If the string contains any other characters in the range U+0030 DIGIT |
| 546 |
|
ZERO to U+0039 DIGIT NINE, return nothing and abort these steps. |
| 547 |
|
#ja |
| 548 |
|
文字列が範囲 U+0030 DIGIT |
| 549 |
|
ZERO ~ U+0039 DIGIT NINE の文字をまだ他に含んでいる場合、 |
| 550 |
|
何も返さず、これらの段階を停止します。 |
| 551 |
|
|
| 552 |
|
#en |
| 553 |
|
Otherwise, return <var title="">number1</var> and <var |
| 554 |
|
title="">number2</var>. |
| 555 |
|
#ja |
| 556 |
|
そうでない場合、 <var title="">number1</var> と <var |
| 557 |
|
title="">number2</var> を返します。 |
| 558 |
|
|
| 559 |
|
#en |
| 560 |
|
The algorithm to <dfn id=find-a>find a number</dfn> is as follows. It is |
| 561 |
|
given a string and a starting position, and returns either nothing, a |
| 562 |
|
number, or an error condition. |
| 563 |
|
#ja |
| 564 |
|
<dfn id=find-a>数を探す</dfn>ための算法は次の通りです。 |
| 565 |
|
この算法は、文字列と開始位置を与えられ、 |
| 566 |
|
何も返さないか、数を返すか、誤り条件を返すかのいずれかです。 |
| 567 |
|
|
| 568 |
|
#en |
| 569 |
|
Starting at the given starting position, ignore all characters in the |
| 570 |
|
given string until the first character that is either a U+002E FULL STOP |
| 571 |
|
or one of the ten characters in the range U+0030 DIGIT ZERO to U+0039 |
| 572 |
|
DIGIT NINE. |
| 573 |
|
#ja |
| 574 |
|
与えられた開始位置からはじめ、 U+002E FULL STOP か、範囲 U+0030 DIGIT ZERO ~ U+0039 |
| 575 |
|
DIGIT NINE の10文字のいずれかであるような最初の文字まで、 |
| 576 |
|
その文字列中のすべての文字を無視します。 |
| 577 |
|
|
| 578 |
|
#en |
| 579 |
|
If there are no such characters, return nothing and abort these steps. |
| 580 |
|
#ja |
| 581 |
|
そのような文字がない場合には、何も返さず、これらの段階を停止します。 |
| 582 |
|
|
| 583 |
|
#en |
| 584 |
|
Starting with the character matched in step 1, collect all the |
| 585 |
|
consecutive characters that are either a U+002E FULL STOP or one of the |
| 586 |
|
ten characters in the range U+0030 DIGIT ZERO to U+0039 DIGIT NINE, and |
| 587 |
|
assign this string of one or more characters to <var |
| 588 |
|
title="">string</var>. |
| 589 |
|
#ja |
| 590 |
|
段階 1 で一致した文字からはじめ、 U+002E FULL STOP か、範囲 U+0030 DIGIT ZERO ~ |
| 591 |
|
U+0039 DIGIT NINE の10文字のいずれかであるような連続した文字群をすべて集め、 |
| 592 |
|
この1文字以上の文字からなる文字列を <var |
| 593 |
|
title="">string</var> に代入します。 |
| 594 |
|
|
| 595 |
|
#en |
| 596 |
|
If <var title="">string</var> contains more than one U+002E FULL STOP |
| 597 |
|
character then return an error condition and abort these steps. |
| 598 |
|
#ja |
| 599 |
|
<var title="">string</var> が U+002E FULL STOP |
| 600 |
|
文字を複数含んでいる場合、誤り条件を返し、これらの段階を停止します。 |
| 601 |
|
|
| 602 |
|
#en |
| 603 |
|
Parse <var title="">string</var> according to the <a |
| 604 |
|
href="#rules1">rules for parsing floating point number values</a>, to |
| 605 |
|
obtain <var title="">number</var>. This step cannot fail (<var |
| 606 |
|
title="">string</var> is guaranteed to be a <a href="#valid1">valid |
| 607 |
|
floating point number</a>). |
| 608 |
|
#ja |
| 609 |
|
<var title="">string</var> を<a |
| 610 |
|
href="#rules1">浮動小数点数値を構文解析する規則</a>により構文解析し、 |
| 611 |
|
<var title="">number</var> を得ます。この段階は失敗しません (<var |
| 612 |
|
title="">string</var> は<a href="#valid1">妥当な浮動小数点数</a>であることが保証されています)。 |
| 613 |
|
|
| 614 |
|
#en |
| 615 |
|
Return <var title="">number</var>. |
| 616 |
|
#ja |
| 617 |
|
<var title="">number</var> を返します。 |
| 618 |
|
|
| 619 |
|
|