[1] [DFN[[CODE(MIME)[multipart/appledouble]]]]
は、 [[AppleDouble]] 形式を表す[[媒体型]]です。

* 仕様書

[REFS[
- [11] [CITE@en[[[RFC 1740]] - MIME Encapsulation of Macintosh Files - MacMIME]], [TIME[2021-01-24T11:56:28.000Z]], [TIME[2021-03-16T08:52:47.303Z]] <https://tools.ietf.org/html/rfc1740>
-[9] MacMIME - How to send Macintosh files with MIME, Sun Mar 14 22:07 1993 <http://www.iana.org/assignments/media-types/multipart/appledouble>
--[12] 
後に [[RFC 1740]] となる [[Internet Draft]]。
]REFS]

* 構文

[2] 旧来の [[Macintosh]] の[[ファイル・システム]]では、
[[ファイル]]は、他の多くのファイル・システムにおけるファイルに相当する部分と、
そのファイルに関するメタ情報の部分で構成されます。
そのファイルの情報交換の際には、
どの程度他の環境との相互運用性に配慮するかで、
幾つかの方法が考慮されました。その方法の一つが
AppleDouble で、 AppleDouble を [[MIME]]
で使用するための媒体型が [CODE(MIME)[multipart/appledouble]] です。 

AppleDouble 第2版 [APPL90]
では、データは[RUBYB[頭部] [header]] 
と[RUBYB[データ・フォーク][data fork]]の2つで
構成されています。 [CODE(MIME)[multipart/appledouble]]
は他の [CODE(MIME)[[[multipart/[VAR[*]]]]]] 媒体型群と同じ構造で、
最初の[[部分]]に頭部を [CODE(MIME)[[[application/applefile]]]]
として, 2番目の部分にデータ・フォークをその実媒体型
[WEAK[([SAMP(MIME)[[[text/plain]]]], [SAMP(MIME)[[[image/jpeg]]]] など)]] にします。

:[APPL90]:AppleSingle/AppleDouble Formats for Foreign Files Developer's Note, Apple Computer, Inc., 1990

AppleDouble 形式については RFC 1740 に説明があります。

[3]
[[IANAREG]] は未だに [[RFC 1740]] の''原案''を参照しています [SRC[>>9]]。
しかし [CODE(MIME)[multipart/appledouble]] に関しては、
幸い大して違いはありません。


* 引数
[4]
,名前,値の型,既定値,意味,典拠
,[CODE(MIME)[[[name]]]],[CODE(ABNF)[[[value]]]],(なし),[[ファイル名]],[RFC 1740]
,[CODE(MIME)[[[x-mac-creator]]]],[CODE(ABNF)[8[[HEXDIGIT]]]],,creator 
,[CODE(MIME)[[[x-mac-type]]]],[CODE(ABNF)[8[[HEXDIGIT]]]],,型 

[5] [CODE(MIME)[name]] 引数は、 
[CODE(MIME)[[[application/octet-stream]]]] 
などでも規定されていますが、 [CODE(MIME)[[[Content-Disposition]]]]
の [CODE(MIME)[[[filename]]]] 
引数が定義されてからはそちらを使うことが望ましいとされています。
[CODE(MIME)[multipart/appledouble]] でもそうでしょう。

[6] [CODE(MIME)[x-mac-creator]], [CODE(MIME)[x-mac-type]]
両引数については、 [CODE(MIME)[[[application/applefile]]]]
媒体型の説明を参照。

[[#comment]]

*例

[7] [SRC[>>11]]

[PRE(MIME)[
Content-Type: multipart/appledouble; boundary=mac-part

--mac-part
Content-Type: application/applefile; name="My-new-car"

[The AppleDouble header goes here]

--mac-part
Content-Type: image/png;

[The data fork goes here]

--mac-part--
]PRE]

[8]
name パラメーターは application/applefile ではなく
multipart/appledouble につけたほうが適当ではないでしょうか。

実装を見てると、 appledouble と実際の body にファイル名をつけて、
applefile にはつけないのが流行ってるみたい。新しい実装も
それに倣うのが良いでしょう。 (ファイル名は CT: の name
パラメーターと、 CD: の filename パラメーターの両者につける。
でも今時 CD: に対応していない UA ってあるのかな?)

もち、name パラメーターが定義されていない媒体型の CT: にむやみに
name パラメーターを書くべきじゃありませぬ。



* メモ

[10] [CODE(MIME)[application/applefile]] は後に回した方が、
MIME 未対応の [[UA]] でも読めないデータを見せられる確率が下がると思うのですが・・・。
(MIME の開発の時にはそういうことをよく気にしていたはずだったのでは。)
