* 符号化モデル

- [[文書文字集合]]
- [[システム文字集合]]
- [[実体符号化指定]]
- [[ビット組合せ変形形式]]
- [[[CODE[charset]] (SGML)]]
- [[データ内容記法]]

[1] [CITE[TEI から見た SGML のはなし - JALLC-12-TEI.pdf]], [TIME[2000-08-16T05:41:01.000Z]], [TIME[2023-07-13T16:01:25.711Z]] <https://joao-roiz.jp/mtoyo/TEI/JALLC-12-TEI.pdf#page=7>

** bootstrap 問題

[2] >>1


[126] [[SGML宣言]]で文書文字集合が規定されていたとしても、
受け取った側のシステムがその文書を読めるとは限りません。
SGML 宣言すらも読めないかもしれません。

JIS 12.1 備考によれば、文書を機械処理にかける前に、
[[システム文字集合]]に変換しておくのは、文書受領者の責任です。
そして、そのための情報交換には二つの方法があるとされています。

- 外部プロトコルによる情報伝達 — 非電子的手段も含む
- SGML 宣言を人間可読形式で渡す

[27] 文書を新しい文字集合に変換する時には、
SGML 宣言の文書文字集合記述引数の文字番号や、
[[文字参照]]の文字番号を変更しなければなりません。
(JIS 12.1) このほかにも、
文書中のすべての文字番号が変更の対象となるはずです。

しかし >>126 の状況でシステム文字集合に変換する時にこの修正は大変そうです。
(似たような文書文字集合ならよいですが、
全然違っていたら、文書中の文字参照を探し回らなければならないのです。
SGML 解析器に通す前ですし、
一括置換だと文字データ区間内などでも書き変えてしまう虞があります。)

理論上はともかく、
実際にはまったく異なる文書文字集合など使わないであろうから、
と思いたいところですが、 [[EBCDIC]] などが使われていたらと考えると。
文字番号専用の文字集合を指定できるようにしてあればこの問題は回避できそうです。

** [CODE[SGML-boot=""]] 引数 (SGML MIME型)

[6] 
[[SGML MIME型]]には [DFN[[CODE[SGML-boot]]]] [[引数]]があります。

[7] 
[[仕様書]]では
[[ISO/IEC 10744]] 第1版の [[TC]]1 案 ([SEE[ [[ISO/IEC 10744]] ]])
の [DFN[[CODE[boot]]]] [[属性]]の規定が参照されています。
[SRC[>>10]]

[8] 
ところが [[ISO/IEC 10744:1997]] には相当するものが見当たりません。
別名の同じようなものもありません。 [[TC]]1案から規格第2版までの開発過程で削除されたと思われます。

[9] 
[[RFC 1874]] 附属書に概要の要約がある [SRC[>>3]] ので、
どのようなものだったかの雰囲気はわかります。
[[SGML宣言]]の[[文書文字集合]]の記述と関係します。

[REFS[

- [10] [CITE@en[[[RFC 1874]] - SGML Media Types]], [TIME[2023-08-04T14:04:35.000Z]] <https://datatracker.ietf.org/doc/html/rfc1874#section-2.3>
- [3] [CITE@en[[[RFC 1874]] - SGML Media Types]], [TIME[2023-08-04T14:01:37.000Z]] <https://datatracker.ietf.org/doc/html/rfc1874#appendix-A.2>

]REFS]

* 文字クラス

[FIG(short list)[ [4] [[SGML]] 構文上の[[文字クラス]]

- [[重要なSGML文字]]
- [[マーク文字]]
- [[データ文字]]
- [[最小データ文字]]
- [[回避文字]]
- [[非SGML文字]]

]FIG]

[16] [[SGMLにおける名前]]も参照。

* 文字の記述

- [[文字参照]]
- [[SPREAD]]
- [[公開テキスト指示シーケンス]]
- [CODE[SDATA]]
- [[BUCS]]
- [[ISO/IEC 10036]]
- [[EGIX]]

* 文字データ型

[FIG(short list)[ [5] [[SGML]] [[文字データ]]

- [[文字データ]]
- [[PCDATA]]
- [[RCDATA]]
- [[NDATA]]

]FIG]

* DSSSL における文字コード

[12] [[DSSSL文書体系]]の[[要素形式]] [SRC[>>11]]: 

- [CODE[baseset-encoding]]
- [CODE[literal-described-char]]
- [CODE[add-name-chars]]
- [CODE[add-separator-chars]]
- [CODE[standard-chars]]
- [CODE[other-chars]]
- [CODE[map-sdata-entity]]
- [CODE[combine-char]]
- [CODE[char-repertoire]]

[13] 
[CODE[standard-chars]] では [[ISO/IEC 10646-1]] と [[ISO/IEC 6429]]
の特定の[[文字]]の利用が要求されています。

[14] 
既成の[[符号化文字集合]]に[[属さない文字][外字]]の利用が想定されていて、
具体例として
[CODE[logoSGML]] (SGML User's Group logo)
が例文中にあります。
[SRC[>>11]]

[REFS[

- [11] [TIME[2001-08-19T05:28:55.000Z]], [TIME[2023-08-04T14:11:23.230Z]] <http://www.y-adagio.com/public/standards/jis_dsssl/cls7.txt>

]REFS]

[15] [CITE[null]], [TIME[2001-08-19T05:28:53.000Z]], [TIME[2023-11-23T08:38:50.863Z]] <http://www.y-adagio.com/public/standards/jis_dsssl/cls6.txt>

* SGML からの旅立ち

- [[参照処理モデル]]
- [[XMLにおける文字コード]]
- [[HTMLにおける文字コード]]

* メモ