[6] [[SGML]] の [[MIME型]]は色々あります。

* 仕様書

[REFS[
- [8] 
[CITE@en[[[RFC 1874]] - SGML Media Types]], [TIME[2023-08-04T13:18:14.000Z]] <https://datatracker.ietf.org/doc/html/rfc1874>
]REFS]

* SGML 汎用媒体型

[3] 特に[[応用][SGML応用]]を指定せずに [[SGML]] を表す[[媒体型]]には、
次のものがあります。

[FIG(list)[
,[CODE(MIME)[[[text/sgml]]]],SGML 実体,"[[RFC 1874]], [IANAREG]"
,[CODE(MIME)[[[application/sgml]]]],SGML 実体,"[[RFC 1874]], [IANAREG]"
,[CODE(MIME)[[[text/x-sgml]]]],SGML 実体
,[CODE(MIME)[[[application/x-sgml]]]],SGML 実体
,[CODE(MIME)@en[[[application/x-sgml-entity]]]],[[SGML実体]]
]FIG]


[1] [[RFC 1874]] は、 [CODE(MIME)[[[text/sgml]]]]
と [CODE(MIME)[[[application/sgml]]]] の定義について、
次のように述べています。

> These media types can be used in the exchange of SGML documents and their entities. [INS[(Abstract)]]

> There are two media-types for SGML parsable entities, Text/SGML and Application/SGML. [INS[(2. The SGML Media-Types)]]

> The Text/SGML media-type can be employed when the contents of the SGML entity is intended to be read by a human and is in a readily comprehensible form. [INS[(2.1. Text/SGML)]]

> SGML entities that do not meet the above requirements should use the Application/SGML media-type. [INS[(2.1. Text/SGML)]]

> Use the Application/SGML media-type for SGML text entities that are not appropriate for Text/SGML. [INS[(2.2. Application/SGML)]]

まとめると、
- [CODE(MIME)[text/sgml]] は、
-- SGML 文書とその実体の交換の中で使うことができる
-- SGML [[解析可能実体]]に使う
-- SGML 実体の内容が人間可読であるときに使うことができる
- [CODE(MIME)[application/sgml]] は、
-- SGML 文書とその実体の交換の中で使うことができる
-- SGML [[解析可能実体]]に使う
-- SGML 実体の内容が人間可読でないときに使うべきである
-- [CODE(MIME)[text/sgml]] が適当でない SGML [[文実体]]に使う

それぞれの用語の定義は RFC にはありませんので、
[[JIS X 4151]] を参照すると、次のことが分かります。

- [DFN[SGML 実体]]: SGML 規格に従って[[文字]]が[[マーク]]または[[データ]]として解釈される[[実体]]
- [CODE(math)[SGML 実体 = [[SGML文書実体]] ∨ [[SGML部分文書実体]] ∨ [[SGML文実体]]]]
- [DFN[SGML 文書実体]]: [[SGML文書]]を開始する SGML 実体。
- [DFN[SGML 部分文書実体]]: 独自の文書型宣言と連結型宣言に従う SGML 実体。
- [DFN[SGML 文実体]]: [[SGML宣言]], [[文書型宣言]], [[連結型宣言]]に従う[[SGML実体]]。

[Q[SGML 解析可能実体]]の定義はありませんが、 SGML
的に解析可能な実体ということで、 [Q[SGML 実体]]と同じ意味と見て良いでしょう。

[2] [CODE(MIME)[text/sgml]] は、
[CODE(math)[SGML 実体 ∧ [CODE(MIME)[[[text/[VAR[*]]]]]]]]
と考えて間違いないでしょう。

問題は [CODE(MIME)[application/sgml]] です。
[CODE(MIME)[text/sgml]] が使えない SGML 実体はすべて
[CODE(MIME)[application/sgml]] にしたいところではありますが、
一番肝心な 2.2. Application/SGML の章で、
[CODE(MIME)[application/sgml]] は SGML 文実体に使うと書いてあります。

となると、 文書実体や部分文書実体を [CODE(MIME)[application/sgml]]
で扱って良いものか、気になります。

** SGML MIME型の引数

[7] [[RFC 1874]] は3つの[[引数]]を定めています [SRC[>>8]]。
いずれも[[SGML実体]]の[[文字コード]]に関係するものです。
[SEE[ [[SGMLにおける文字コード]] ]]

- [11] [CODE[charset][charset (SGML)]]
- [9] [CODE[SGML-bctf]]
- [10] [CODE[SGML-boot]]

* SGML 応用の MIME 型

[4] 各[[SGML応用]]には、それぞれの [[MIME型]]が定義されていることがあります。

;; [[HTML MIME型]]、[[DocBook]]、[[TEI]] などを参照。

* XML MIME 型

[5] このほかに [[XML]] 系の媒体型が大量にあります ([[XML MIME型]]参照)。

[12] [[XML]] でもあるような[[SGML文書]]や[[SGML実体]]には
[[XML MIME型]]等 [[XML]] 用の [[MIME型]]も使えます。

[13] 
ただし [[SGML]] としてではなく [[XML]] として処理されることになります。


* メモ