Webサービス応答のtext / xmlとapplication / xmlの違いは何ですか


495

これは違いに関する一般的な質問の詳細ですtext/xmlapplication/xml。私はWebサービス(REST-ジャージー)を書くのはかなり新しいです。私がapplication/xml学習に使用しているほとんどのチュートリアル/コード例に表示されるものなので、私は制作してきましたがtext/xml、最近、何が違うのか、いつ使用するのかについて知り、疑問に思っていましたapplication/xml


DaveVの回答とtools.ietf.org/html/rfc3023のヘッダーに記載されているように、RFC 3023(Odedの回答から引用)は廃止されました。新しいRFC 7303は、実際には、RFC 3023が以前に使用したものとは大きく異なる回答をこの質問に提供します。したがって、DaveVの回答を受け入れ、最新の情報が回答リストの先頭に保持されるようにすると、将来の読者にとって役立つと思います。
Mark Amery

以下のDave VとMariánČernýに基づくと、何か新しいことをしている場合は、application / xmlが優先されるようです。
Sql Surfer

text/人間向けです。application/コンピュータ向け
Ian Boyd

回答:


108

これは古い質問ですが、頻繁にアクセスされ、明確な推奨事項がRFC 7303から入手できるようになりました。これはRFC3023を廃止しました。一言で言えば(セクション9.2):

The registration information for text/xml is in all respects the same
as that given for application/xml above (Section 9.1), except that
the "Type name" is "text".

6
引用された段落では、IANA登録情報について言及しています。これは(セクション9.1を確認することにより)エンコードも処理するため、application/xmlとの間で文字セットの処理にこれ以上の違いはありませんtext/xml。さらに、私は要約のこの部分を検討します:「この仕様は... application / xml ...を標準化し、text / xml ...をエイリアスとして定義しています...」を意味しapplication/xmltext/xml同等であり、優先順位はありませんもう一方について。
マリアンチェルニー

427

RFC(3023)のセクション3のXMLメディアタイプ:

XMLドキュメント(つまり、未処理のソースXMLドキュメント)カジュアルなユーザーから読み取れる場合、application / xmlよりもtext / xmlの方が適しています。text / xmlを明示的にサポートしていないMIMEユーザーエージェント(およびWebユーザーエージェント)は、たとえば、XML MIMEエンティティをプレーンテキストとして表示することにより、text / plainとして扱います。 カジュアルなユーザー XML MIMEエンティティを読み取れない場合は、Application / xmlをお勧めします。

(強調鉱山)


6
@drachenstern-非説明的な要素と属性の可能性が高いと思います(<a1 d="" g="">たとえば、カジュアルなユーザーには読めない)。
Oded

3
@マイクもちろん。いくつかのXMLファイルは、このように、基本的にはレコードのリストです:msdn.microsoft.com/en-us/library/ms762271%28v=vs.85%29.aspxこれは、アプリケーションによって読み込まれて処理される可能性が高いです。その他は基本的に、HTMLページのようなマークアップ付きのテキストです。それらにtext / xmlを使用すると、より適切に聞こえます。
biziclop 2011年

5
読めないvs読める例を挙げてください。私たちは、ほとんどが読み取り可能であるが、base64では、ノードをエンコードしていないファイル、など。を使用する
ジョー・フィリップス

5
@JoePhilllips-どうぞ。base64は人間には読めません。文書全体を読むことができ、ツールやマニュアルを見なくても人間が理解できる場合(そのxgsfタグの意味は何ですか)、それは読み取り可能です。
2013

8
@CommaToast "text / xml"がAcceptの場合、Webサーバーはフォーマット済みでインデントされたXMLを返す可能性がありますが、application / xmlは削除されたすべての重要でない空白を返す可能性があります。たとえばASP.NET MVCでは、異なるMIMEタイプに異なるハンドラーを指定できます。
Novaterata 2015

33

この記事によると application / xmlが推奨されます。


編集

記事について少しフォローアップしました。

著者は、エンコーディングが次のようにXML処理命令で宣言されていると主張しています。

<?xml version="1.0" encoding="UTF-8"?>

text/xmlメディアタイプが使用されている場合は無視できます。

それらはtext/*RFC 2046のMIMEタイプファミリー仕様の定義、特に次のフラグメントで論文をサポートします

4.1.2.  Charset Parameter

   A critical parameter that may be specified in the Content-Type field
   for "text/plain" data is the character set.  This is specified with a
   "charset" parameter, as in:

     Content-type: text/plain; charset=iso-8859-1

   Unlike some other parameter values, the values of the charset
   parameter are NOT case sensitive.  The default character set, which
   must be assumed in the absence of a charset parameter, is US-ASCII.

   The specification for any future subtypes of "text" must specify
   whether or not they will also utilize a "charset" parameter, and may
   possibly restrict its values as well.  For other subtypes of "text"
   than "text/plain", the semantics of the "charset" parameter should be
   defined to be identical to those specified here for "text/plain",
   i.e., the body consists entirely of characters in the given charset.
   In particular, definers of future "text" subtypes should pay close
   attention to the implications of multioctet character sets for their
   subtype definitions.

彼らによれば、application/xmlMIMEタイプを使用すると、このような問題を回避できます。それが本当かどうかにかかわらず、私は避けようとはしませんtext/xml。私見、人間可読性(非可読性)のセマンティクスに従うだけで、常に文字セットを指定することを忘れないでください。


1
リンクの+1。あなた自身の言葉で、この記事で達した基本的な結論は何ですか?多分「記事はファイルのエンコーディングが無視されると述べています、それはあなたがtext / xmlヘッダーを持つファイルでutf-8とバイナリデータを送信できないことを意味します」これも確認されましたか?
Shanimal

@Shanimalに同意します。リンクには長続きしない可能性があるため、回答には記事の要旨を含める必要があります。その消滅は答えをほとんど役に立たなくするでしょう。誰かがエンコーディングに関するXML処理命令を無視することについての声明を確認できますか?
toniedzwiedz

1
元の作者によると、これは仕様のUpdate: The situation has changed in the new HTTP/1.1 RFC: The default charset of ISO-8859-1 for text media types has been removed; the default is now whatever the media type definition says.
今後の改訂

ajaxでXMLファイルをロードする場合、それはタイプの「ドキュメント」ですapplication/xmlが、入力フォーム要素を使用する場合text/xml、コードで適切に処理されないタイプの「ファイル」です。どうすれば他の形式に変換できますか?
デビルズアドボケイト

5

application/xml見られるsvnようにバイナリに対し、タイプtext/xmlとしてテキストの差分を表示することができるためのファイル。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.