[3] [CODE(DOMi)@en[[[Document]]]] の [DFN[[CODE(DOMa)@en[[[contentType]]]]]] [[属性]]は、
[[文書]]の[DFN[[F[[RUBYB[[[内容型]]]@en[content type]]]]]]を返します。
[[文書]]の[F[内容型]]は[[文書]]が作られた時に設定される
[[MIME型]] ([[引数]]なし) です。

* 仕様書

[REFS[
- [1] [CITE@en-US[DOM Standard]] ([TIME[2013-11-26 14:50:05 +09:00]] 版) <https://dom.spec.whatwg.org/#dom-document-contenttype>
- [2] '''[CITE@en-US[DOM Standard]] ([TIME[2013-11-26 14:50:05 +09:00]] 版) <https://dom.spec.whatwg.org/#concept-document-content-type>'''
- [11] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2013-11-26 23:03:23 +09:00]] 版) <https://www.whatwg.org/specs/web-apps/current-work/#browsing-the-web>
- [13] [CITE@en-US[XMLHttpRequest Standard]] ([TIME[2013-11-25 14:04:56 +09:00]] 版) <https://xhr.spec.whatwg.org/#document-response-entity-body>
- [14] [CITE[DOM Parsing and Serialization Standard]] ([TIME[2013-12-02 17:30:42 +09:00]] 版) <https://domparsing.spec.whatwg.org/#dom-domparser-parsefromstring>
]REFS]

* IDL 属性

[25] [CODE(DOMi)@en[Document]] [[インターフェイス]]の
[DFN[[CODE[contentType]]]]
[[IDL属性]]の[[取得器]]は、次のようにしなければ[MUST[なりません]] [SRC[>>1]]。

[FIG(steps)[
= [26] [[文脈オブジェクト]]の[F[内容型]]を返します。
]FIG]

[27] 返される値は、[[MIME型]]を表す[[文字列]]です。常に[[小文字]]であり、
[[引数]]は含まれません。

[28] [[設定器]]はありません。

* 内容型の決定

[4] 別途規定がない限り、 [[内容型]]は [CODE(MIME)@en[[[application/xml]]]] です [SRC[>>2]]。

[5] [[文書]]の [[clone]] では[[内容型]]も複製されます [SRC[[[DOM]]]]。

[6] [CODE(DOMm)@en[[[createHTMLDocument]]]] では[[内容型]]が [CODE(MIME)@en[[[text/html]]]] になります [SRC[[[DOM]]]]。

[23] [CODE(DOMm)@en[createDocument]] では[F[内容型]]が[[名前空間URL]]に依存して決められます
[SRC[[[DOM]]]]。

[7] [[HTML文書]]や [[DOM]] 以外のものとしてレンダリングされるページに [[navigate]] すると[[内容型]]が 
[CODE(MIME)@en[[[text/html]]]] になります [SRC[>>11]]。 

[8] [[テキストファイル]]に [[navigate]] すると[[内容型]]が [CODE(MIME)@en[[[text/plain]]]] になります [SRC[>>11]]。 

[9] [[媒体]] ([[画像]]、[[音声]]、[[動画]]) や[[プラグイン]]で表示されるページに [[navigate]]
すると[[内容型]]がその [[sniffed MIME type]] になります [SRC[>>11]]。

;; [10] この [[sniffed MIME type]] に[[引数]]が含まれるのかどうか曖昧で、  [[HTML]] 仕様書から [[MIME Sniffing]] 仕様書へと辿っていくと[[引数]]も含まれる定義に見えますが、
他との整合性を考えると[[引数]]は含まれないと解釈するべきように思われます。

[12] [[XHR]] [CODE(DOMa)@en[[[responseXML]]]] では [[final MIME type]] ([CODE(DOMm)@en[[[overrideMimeType]]]] されていればそれ、
されていなければ[[応答]]の [[MIME型]]) となります ([[引数]]なし) [SRC[>>13]]。

[15] [CODE(DOMi)@en[[[DOMParser]]]] では指定された[[MIME型]] ([[引数]]なし) になります [SRC[>>14]]。

[16] [CODE(DOMm)@en[[[manakaiIsHTML]]]] [[メソッド]]で[[文書]]を [[HTML文書]]に設定すると[[内容型]]も
[CODE(MIME)@en[[[text/html]]]] になります。[[XML文書]]に設定すると[[内容型]]は [CODE(MIME)@en[[[application/xml]]]]
になります。

;; [17] 以下 >>16 は無視して標準の [[DOM]] についてだけ言及します。

[FIG(corollary)[
[20] [[内容型]]は常に[[小文字]]で[[引数]]なしの[[妥当なMIME型]]です。
]FIG]

[FIG(corollary)[
[18] [[スクリプト]]がアクセスできる範囲内では[[文書]]の[[内容型]]が途中で変更されることはありません。
]FIG]

[FIG(corollary)[
[19] [[HTML文書]]の[[内容型]]は [CODE(MIME)@en[[[text/html]]]] で、 [[XML文書]]の[[内容型]]は
[CODE(MIME)@en[[[text/html]]]] 以外です。
]FIG]

* 文脈

[24] [F[内容型]]は [CODE[createElement]] の挙動に影響します。

* 関連

[21] この[[IDL属性]]は、 [[MIME]] や [[HTTP]] の [CODE(MIME)@en[[[Content-Type:]]]]
[[ヘッダー]]に相当するものです。

* 歴史

[22] [CITE@en[Set createDocument()'s content type based on namespace · whatwg/dom@537e579]]
([TIME[2016-04-19 23:34:49 +09:00]] 版)
<https://github.com/whatwg/dom/commit/537e579fac8d0a99544d798bb7d46660e59ffc78>