* SGML

[1] 
>
:数 (number):
[[10進数]]だけからなる[[名前字句]]。
([[JIS X 4151]]‐1992 3. (133))

JIS の配列順によれば[Q[すう]]と読ませるようです。

- [CODE(ABNF)[[DFN[数]] := 1*[[DIGIT]]]]

[2] 数は、 SGML 的には単なる文字列です。従って、 [CODE(SGML)[1]] と [CODE(SGML)[01]] は等価では'''ありません'''。 (8.3 参照。)

[3] 数は名前字句であり、その長さは [CODE(SGML)[[[NAMELEN]]]] 
以下でなければなりません。 (8.3.1 参照。)

[4] 数は、 [CODE(SGML)[[[NAMECASE]]]] 
引数の指定によっては対応する[[大文字]]に置換されます。
とわざわざ規格に書いてあるものの (8.3 参照)、
実際には全く影響はありません。
[CODE(ABNF)[数]]に使うことのできるのは[[文字種別]] 
[CODE(SGML)[digit]] だけで、これは 
[[SGML宣言]]などで変更できないからです。

** 属性型 [CODE(SGML)@en[NUMBER]] (SGML)

[33] [[SGML]] の[[属性型]] [DFN[[CODE(SGML)@en[NUMBER]]]] は、1つ[[以上]]の[[数字]]の[[列]]を表します。

[34] [CODE(SGML example)[0001]] のような[[先導零]]も認められていますが、 [CODE(SGML example)[1]]
のような[[先導零]]がないものと同じ値であるという規定は特になされていません。

[35] [[負]]の値、[[小数]]、 [[NaN]]、[[無限大]]などは表現できません。

* 属性型 [CODE(SGML)@en[NUMBER]]、[CODE(XML)[%Number;]]、Number (HTML)

[5] [[XHTML 1.0]] の [[DTD]] で使われている[[引数実体]]
[DFN[[CODE(XML)[%Number;]]]] は、[[属性]]の型が
1つ以上の[[数字]]であることを表します。

この属性型は [[HTML 4]] [[DTD]] で [CODE(SGML)[[[NUMBER]]]]
が使われていたところで使われています。 [CODE(XML)[[[NMTOKEN]]]]
の方が近いのですが、 [CODE(XML)[[[CDATA]]]]
として定義されています。

[6] 仕様書:
- [[XHTML 1.0]]
-- [CSECTION[A.1.1. XHTML-1.0-Strict]]
<http://www.w3.org/TR/2002/REC-xhtml1-20020801/dtds.html#dtdentry_xhtml1-strict.dtd_Number>
-- [CSECTION[A.1.2. XHTML-1.0-Transitional]]
<http://www.w3.org/TR/2002/REC-xhtml1-20020801/dtds.html#dtdentry_xhtml1-transitional.dtd_Number>
-- [CSECTION[A.1.3. XHTML-1.0-Frameset]]
<http://www.w3.org/TR/2002/REC-xhtml1-20020801/dtds.html#dtdentry_xhtml1-frameset.dtd_Number>
- [[XHTML m12n]]
-- [CSECTION[4.3. Attribute Types]]
<IW:XHTML1m12n:"abstraction.html#dt_Number">

[7] 
:[[引数実体名]]:[CODE(SGML)[%Number]] ([[XHTML 1.0]])
:抽象属性型名:[CODE[Number]] ([[XHTML m12n]])
:属性型名:[Q[number]] ([[HTML 4]])
:[[SGML]] [[属性型]]:[CODE(SGML)[[[NUMBER]]]] ([[HTML 4]])
:[[XML]] [[属性型]]:[CODE(XML)[[[CDATA]]]] ([[XHTML 1.0]])
:大文字・小文字:無関係

[8] 
[[HTML 4]] の場合、 [[SGML宣言]]より
[CODE(SGML)[NUMBER]] 型属性値の最大長は
[CODE(SGML)[[[NAMELEN]]]] = 65536 になります。
(65536 桁で表せない数は指定できません。)
注釈に HTML UA は無制限にしろとかいてあります (が、 SGML 的に制限がある以上、強制ではありません)。

実際には HTML 属性値で 65536 桁以上もある数を指定する必要など到底ないでしょう。

それから、多くの UA は現実には [CODE(math)[2[SUP[15]]]] とか [CODE(math)[2[SUP[16]]]] とか [CODE(math)[2[SUP[31]]]] とか [CODE(math)[2[SUP[32]]]] とか以上の数は扱えない可能性が高いです。
([[名無しさん]] [WEAK[2004-07-29 12:28:02 +00:00]])

