-
Notifications
You must be signed in to change notification settings - Fork 4
/
207.txt
69 lines (58 loc) · 4.09 KB
/
207.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#?SuikaWiki/0.9
[1] 【[[SGML]]】
>
:[RUBYB[公開文指示シーケンス] [public text designating sequence]]:[[公開文]]の中の[[文字集合]]の[[宣言]]のときに使われ、
文字集合を[[指示]]する [[JISX0202]]
に規定する[[エスケープシーケンス]]を含む[[文識別子]]の一部分。 [INS[([[JISX4151]]‐1992 定義 (87)]]
[2] 公開文指示シーケンスは、[[最小データ]]ですが、
その公開識別子で参照する文字集合の [[ISO/IEC2022]]
による指示シーケンスを外部表現したものでなければなりません。
その文字集合が [[ISO-IR]] 登録集合であるなら、
その登録してある指示シーケンスでなければなりません。
(JIS X 4151‐1992 9.2.2.4 参照。)
[3] 例:
-[SAMP(SGML)[ESC 2/8 4/0]] ([[ISO/IEC646]] 旧 [[IRV]] を [[G0]] に指示)
-[SAMP(SGML)[ESC 2/8 4/2]] (ISO/IEC 646:1991 [[IRV]] = [[ASCII]] を G0 に指示)
-[SAMP(SGML)[ESC 2/5 4/0]] (未登録の128文字の文字集合・・・と JIS X 4151 には書いてあるけど、 ISO/IEC 2022 ではこれは ISO/IEC 2022 自身を指す [[DOCS]] のはずだ。それとも昔は違ったのか?, を指示)
-[SAMP(SGML)[ESC 2/6 4/0 ESC 2/4 2/9 4/2]] ([[JISX0208]]‐1990 を [[G1]] に指示)
[4] 登録済み文字集合に対する公開文指示シーケンスは公開文
(符号化文字集合) を一意に識別しますが、
そうでない場合はその[[所有者識別子]]ごとに一意な公開分を識別するのだそうです。
ですから、例えば [SAMP(SGML)[ESC 2/4 2/8 3/0]]
([[94^n図形文字集合]]を G0 に指示する[[私用]]のエスケープ・シーケンス。)
だけでは符号化文字集合を特定できませんが、例えば
[SAMP(SGML)[+//IDN mule.example//CHARSET Mule Big5-1//ESC 2/4 2/8 3/0]]
とすれば、それが [[MULE]] [[Big5]]‐1
だとわかります。
[5] [[公開識別子]]一般に言えることですが、
この公開文指示シーケンスも、実際には役に立ちません。
その指示シーケンスと ISO/IEC 2022 処理系が連動して[[符号拡張法]]をうまく処理してくれるとか、
そういうことは'''ありません'''。
単に備忘とか、一意な識別子としやすくするための便宜のためのものでしょう。
ですから、 [[SGML宣言]]の[[文書文字集合]]の指定で、
[[日本語EUC]] を使いたいとして、 G1
に [[JISX0208]]‐1990 を指示する時に、
その公開文指示シーケンスを
[SAMP(SGML)[ESC 2/6 4/0 ESC 2/4 4/2]] (G0 に指示)
とか
[SAMP(SGML)[ESC 2/6 4/0 ESC 2/4 2/10 4/2]]
としても (たぶん) 構わないわけです。でも、
[SAMP(SGML)[ESC 2/6 4/0 ESC 2/4 2/9 4/2]] (G1 に指示)
にした方が分かりやすい (かもしれない)
ので、そうする方がよい、と思われます。
[6] >>2 を厳密に解釈すると、 ISO/IEC 646:1991 IRV
を [[G2]] に指示する ([SAMP(SGML)[ESC 2/10 4/2]])
ような真似はできません。なぜなら、この指示シーケンスは
ISO‐IR に登録されていないからです。
[WEAK[(当時の古い ISO/IEC 2022 の仕様に基づいて登録されていたからです。)]]
[WEAK[(もちろん、 IRV を G2 に指示するなんて気違いじみたことは普通はしませんが、そういうことは置いといて。)]]
実際にはその辺りは適当に
(登録されている[[終端バイト]]をとでも読み替えて)
解釈すればいいでしょう。
[7] ところで、「外部表現」で [SAMP[2/8]] のほかに
[SAMP[02/8]] や [SAMP[2/08]] や [SAMP[02/08]]
のような表現が認められているのかどうか不明です。
[WEAK[規格の例示の通り、 [SAMP[2/8]] としておけば問題はないでしょう。]]
頭に [CODE[0]] をつけるかどうかは、
[[符号化文字集合]]の規格では昔は[[7ビット]]か[[8ビット]]かの関係と絡んでややこしいことになっていましたが、
今はどうでもいいことになっています。 SGML ではどうなんでしょう?