* 公開テキスト指示シーケンス

[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] 例:

-[8] [SAMP(SGML)[ESC 2/8 4/0]] ([[ISO/IEC646]] 旧 [[IRV]] を [[G0]] に指示)
-[9] [SAMP(SGML)[ESC 2/8 4/2]] (ISO/IEC 646:1991 [[IRV]] = [[ASCII]] を G0 に指示)
-[10] [SAMP(SGML)[ESC 2/5 4/0]] (未登録の128文字の文字集合・・・と JIS X 4151 には書いてあるけど、 ISO/IEC 2022 ではこれは ISO/IEC 2022 自身を指す [[DOCS]] のはずだ。それとも昔は違ったのか?, を指示)
-- [12] 昔はそれっぽい感じだったらしい [SEE[ [[DOCS]] ]]
-[11] [SAMP(SGML)[ESC 2/6 4/0 ESC 2/4 2/9 4/2]] ([[JISX0208]]‐1990 を [[G1]] に指示)

[4] 登録済み文字集合に対する公開文指示シーケンスは公開文
(符号化文字集合) を一意に識別しますが、
そうでない場合はその[[所有者識別子]]ごとに一意な公開分を識別するのだそうです。

[EG[
[13] 
例えば [SAMP(SGML)[ESC 2/4 2/8 3/0]]
([[94[SUP[[VAR[n]]]]図形文字集合]]を G0 に指示する[[私用]]のエスケープ・シーケンス。
[SEE[ [[私用終端バイト]] ]])
だけでは符号化文字集合を特定できませんが、例えば
[SAMP(SGML)[+//IDN mule.example//CHARSET Mule Big5-1//ESC 2/4 2/8 3/0]]
とすれば、それが [[MULE]] [[Big5]]‐1 
だとわかります。
]EG]

[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 に指示するなんて気違いじみたことは普通はしませんが、そういうことは置いといて。)]]

実際にはその辺りは適当に 
(登録されている[[終端バイト]]をとでも読み替えて)
解釈すればいいでしょう。
[SEE[ [[ISO-IR]] ]]

[7] ところで、「外部表現」で[[ビット組合せ]]の記述に [SAMP[2/8]] のほかに
[SAMP[02/8]] や [SAMP[2/08]] や [SAMP[02/08]]
のような表現が認められているのかどうか不明です。
[WEAK[規格の例示の通り、 [SAMP[2/8]] としておけば問題はないでしょう。]]

頭に [CODE[0]] をつけるかどうかは、
[[符号化文字集合]]の規格では昔は[[7ビット]]か[[8ビット]]かの関係と絡んでややこしいことになっていましたが、
今はどうでもいいことになっています。 SGML ではどうなんでしょう?

* 公開文種別 [CODE[CHARSET]]

[17] 用例のある、[[公開文種別]]が [CODE(SGML)[CHARSET]]
な[[公開識別子]]:

,*[[公開識別子]],*説明,*出典
,[CODE(SGML)[[[ISO 646-1983//CHARSET International Reference Version (IRV)//ESC 2/5 4/0]]]],[[旧IRV]],[ISO 8879]
,[CODE(SGML)[[[ISO 646-1983//CHARSET International Reference Version (IRV) //ESC 2/5 4/0]]]],[[旧IRV]]
,[CODE(SGML)[[[ISO 646-1991//CHARSET International Reference Version (IRV)//ESC 02/5 04/0]]]],[[旧IRV]],[[NCALS-HTML 2.0]]
,[CODE(SGML)[[[ISO Registration Number 87//CHARSET JIS X 0208//ESC 2/6 4/0 ESC 2/4 2/9 4/2]]]],[CODE(charname)@en[IRR]]
,[CODE(SGML)[[[ISO Registration Number 87//CHARSET JIS X 0208 Japanese Character Set//ESC 2/6 4/0 ESC 2/4 4/2]]]],[CODE(charname)@en[IRR]]
,[CODE(SGML)[[[ISO Registration Number 87//CHARSET JIS X 0208-1990//ESC 2/6 4/0 ESC 2/4 4/2]]]],[CODE(charname)@en[IRR]]
,[CODE(SGML)[[[ISO Registration Number 100//CHARSET ECMA-94 Right Part of Latin Alphabet Nr. 1//ESC 2/13 4/1]]]],,[[HTML 2.0]]
,[CODE(SGML)[[[ISO Registration Number 109//CHARSET ECMA-94 Right Part of Lation Alphabet Nr.3//ESC [ASIS[2/9]] 4/3]]]],[N[2/13]] が正しい,[[ISO 8879]]‐1986
,[CODE(SGML)[[[ISO Registration Number 109//CHARSET ECMA-94 Right Part of Latin Alphabet Nr. 3//ESC 2/13 4/3]]]]
,[CODE(SGML)[[[ISO Registration Number 159//CHARSET JIS X 0212//ESC 02/4 02/11 04/4]]]],,[[NCALS-HTML 2.0]]
,[CODE(SGML)[[[ISO Registration Number 159//CHARSET JIS X 0212-1990//ESC 2/4 2/8 4/4]]]]
,[CODE(SGML)[[[ISO Registration Number 168//CHARSET JIS X 0208//ESC 02/6 04/0 ESC 02/4 02/9 04/2]]]],[CODE(charname)@en[IRR]],[[NCALS-HTML 2.0]]
,[CODE(SGML)[[[ISO Registration Number 176//CHARSET ISO/IEC 10646-1:1993 UCS-2 with implementation level 3//ESC 2/5 2/15 4/5]]]],[CODE(charname)@en[DOCS]],[W3C]
,[CODE(SGML)[[[ISO Registration Number [ASIS[176]]//CHARSET ISO/IEC 10646-1:1993 UCS-4 with implementation level 3//ESC 2/5 2/15 4/6]]]],177が正しい / [CODE(charname)@en[DOCS]],[[Web SGML]]:1999
,[CODE(SGML)[[[ISO Registration Number 177//CHARSET ISO/IEC 10646-1:1993 UCS-4 with implementation level 3//ESC 2/5 2/15 4/6]]]],[CODE(charname)@en[DOCS]],[W3C]

[14] ''Code configuration in this www server'' <http://www1.u-netsurf.ne.jp/~7l1rll/codeWWW.html>: [[SGML]] の[[文字コード]]の扱いと [[ISO/IEC2022]] [[符号拡張法]]の相性が悪い話。日本の委員は修正するように提案したけど、 ISO/IEC 2022 は難解云々で分かってもらえなかったと。

[15] ちなみに、 [[XML]] の時代の[[文書文字集合]] ([[SGML]] の [CODE(SGML)[CHARSET]]; IETF/W3C の [[CCS]]) と転送符号化方式 (IETF/W3C の [[CES]]) は別だとする考え方は後付け。 SGML にはそんな概念はない。

[16] >>14 によると、[[シフトJIS]] があるからいいじゃん☆的な関係者もいたらしいにゃ。1980年代終わりなら仕方ない, のかなあ? 既に[[インターネット]]も[[パソ通]]もあった時代。自己中委員は反省するべき。


* メモ