/
97.txt
134 lines (101 loc) · 6.94 KB
/
97.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
[45] [[MIME型]]の[DFN[[RUBYB[構造化構文接尾辞]@en[structured syntax suffix]]]]は、
その[[MIME型]]が用いている一般的な構文 ([[構造化構文]]、[[メタ書式]])
を表すものです。 [[MIME型]]の末尾に [CODE(MIME)[[[+]]]]
で区切って記述します。[[構造化構文接尾辞]]は、[[MIME型]]の一部です。
[EG[
[46] 例えば [[MIME型]] [CODE(MIME)@en[[[image/svg+xml]]]] では、末尾の
[CODE(MIME)@en[[[+xml]]]] が[[構造化構文接尾辞]]です。 [[MIME型]]全体では [[SVG]]
を表しますが、[[構造化構文接尾辞]]は [[XML]] を表しており、 [[SVG]]
としての処理に対応していなかったとしても、 [[XML]] としての処理には対応していれば、
そのレベルでこの [[MIME型]]を理解できることになります。
]EG]
[2] >>1 は用語が長過ぎるとして[DFN[[RUBYB[+接尾辞]@en[+suffix]]]]と呼んでいます。
* 仕様書
[REFS[
- [47] [CITE@en[RFC 6839 - Additional Media Type Structured Syntax Suffixes]] ([TIME[2013-06-28 00:23:48 +09:00]] 版) <http://tools.ietf.org/html/rfc6839>
- [50] [CITE[Structured Syntax Suffix Registry]] ([TIME[2013-09-19 20:22:53 +09:00]] 版) <http://www.iana.org/assignments/media-type-structured-suffix/media-type-structured-suffix.xhtml>
- [53] [CITE@en[RFC 6838 - Media Type Specifications and Registration Procedures]] ([TIME[2014-06-02 03:57:09 +09:00]] 版) <http://tools.ietf.org/html/rfc6838#section-4.2.8>
- [1] [CITE@en[Best Practices for Fragment Identifiers and Media Type Definitions]] ([TIME[2013-04-29 23:11:19 +09:00]] 版) <http://www.w3.org/2001/tag/doc/mimeTypesAndFragids#dfn-suffix>
]REFS]
* 用法
[6] [[MIME型]]の[[部分型]]部分の末尾に [CODE[+]] と[[構造化構文]]の名前を記述できます。
[EG[
[7] 例えば [[SVG]] は [[XML]] を[[構造化構文]]として用いているので、
[CODE(MIME)@en[[[image/svg+xml]]]] という [[MIME型]]を使っています。
[CODE[[[+xml]]]] まで含めて1つの [[MIME型]]です。
]EG]
[8] 名前のある[[構造化構文]]を使う [[MIME型]]は、[[構造化構文接尾辞]]を使う[['''べきです''']]
[SRC[>>53]]。
[9] [[MIME型]]は実際に使っていない[[構造化構文接尾辞]]を含めては[['''なりません''']]
[SRC[>>53]]。
[12] [[構造化構文接尾辞]]を複数連ねることができるのかどうかは不明瞭です。
* IANA 登録簿
[10] [[構造化構文接尾辞]]の [[IANA登録簿]] [SRC[>>50]]
が ([[MIME型]]登録簿とは別に) あります [SRC[>>53]]。
[11] 未登録の[[構造化構文接尾辞]]を使う[['''べきではありません''']] [SRC[>>53]]。
* 他の「[CODE(MIME)[+]]」の用法
[48] [[MIME型]]の中で [CODE(MIME)@en[[[+]]]] という記号は当初から予約されていたものではありませんでしたから、
[[構造化構文接尾辞]]以外の意味で [CODE(MIME)@en[[[+]]]] が使われることもあります。
[34]
[CODE(MIME)@en[[[audio/amr-wb+]]]] というのが登録されています。
[CODE(MIME)@en[[[application/xhtml+voice+xml]]]] には物言いがついたのに。
([[名無しさん]] [WEAK[2006-07-02 03:17:54 +00:00]])
[35]
ちなみに巷で使われているものにはほかに [CODE(MIME)@en[[[application/x-xhtml+voice+xml]]]] なんてのもあります。
([[名無しさん]] [WEAK[2006-07-02 03:19:04 +00:00]])
[44] [CODE(MIME)@en[[[application/x-dd+ext]]]] ってのもありますね。
[51] [CODE(MIME)@en[[[text/x-c++]]]], [CODE(MIME)@en[[[text/x-c++hdr]]]] などもあります。
[5] [CODE(MIME)@en[[[application/x-tar+gzip]]]] は[[圧縮形式]]を表しており、
厳密には構造化構文とはいえないかもしれません。
* 構造化構文接尾辞の一覧
[FIG(list)[
[29]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+asn1]]]] ,[[ASN.1]] ,
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+ber]]]] ,[[BER]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+bibtex]]]] ,[[BibTeX]] ,
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+binary]]]] ,
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+cbor]]]] ,[[CBOR]],[CODE(MIME)@en[[[application/cbor]]]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+csv]]]] ,[[CSV]] ,[CODE(MIME)@en[[[text/csv]]]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+der]]]] ,[[DER]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+exi]]]] ,[[EXI]],[CODE(MIME)@en[[[application/exi]]]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+fastinfoset]]]] ,[[Fast Infoset]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+form]]]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+gzip]]]] ,[[GNU Zip]],[CODE(MIME)@en[[[application/gzip]]]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+i-json]]]],[[I-JSON]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+json]]]] ,[[JSON]],[CODE(MIME)@en[[[application/json]]]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+n3]]]] ,[[N3]],[CODE(MIME)@en[[[text/n3]]]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+oembed]]]] ,[[oEmbed]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+ogg]]]] ,[[Ogg]] container format
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+rcs]]]] ,[[RCS]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+swcfg]]]] ,[[SuikaWikiConfig/2.0]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+text]]]] ,[[テキスト]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+thrift]]]] ,[[Thrift]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+yaml]]]] ,[[YAML]],[CODE(MIME)@en[[[text/yaml]]]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+vrml]]]] ,[[VRML]],[CODE(MIME)@en[[[model/vrml]]]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+wbxml]]]] ,[[WBXML]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+xml]]]] ,[[XML]],[CODE(MIME)@en[[[application/xml]]]]
,[CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+zip]]]] ,[[Zip]],[CODE(MIME)@en[[[application/zip]]]]
]FIG]
[4] [[JSON]] 形式による[[構造化構文接尾辞]]の一覧データファイルが >>3 にあります。
[REFS[
- [3] [CITE@en[data-web-defs/mime-types.txt at master · manakai/data-web-defs]] ([TIME[2015-01-16 14:18:34 +09:00]] 版) <https://github.com/manakai/data-web-defs/blob/master/doc/mime-types.txt>
]REFS]
* 歴史
** RFC 3023
[33]
[[RFC 3023]] の [CODE(MIME)@en[+xml]]
以来、 [[XML]] と [[XML応用]]のような関係を示すために、
[[媒体型]]の末尾に [CODE(MIME)@en[+[VAR@ja[書式名]]]]
のような[[文字列]]をつけるようになりました。
この[[接尾辞]]は、 [[RFC 3023]] で [CODE(MIME)@en[+xml]]
が定義されているのと、 [[RFC 4288]]
で (将来同様な規定が他の書式に対してもなされることに対して)
注意が促されている他は、明確に定義されているわけではありません。
[52] [CITE@en[RFC 3023 - XML Media Types]]
( ([TIME[2014-07-11 12:46:44 +09:00]] 版))
<http://tools.ietf.org/html/rfc3023#appendix-A>
** RFC 6838 / RFC 6839
[49] [[RFC 6838]] で登録手続きが定義され、
[[RFC 6839]] で用法が明確化されて初期状態での接尾辞の定義・登録が行われました。
* 関連
[13] [CODE(MIME)@en[[[multipart/*]]]] は、時代が異なれば[[構造化構文接尾辞]]だったかもしれません。