1. ホーム
  2. xml

[解決済み] XMLサイトマップのContent-Typeはどのような値ですか?

2022-06-14 21:06:34

質問

text/xml と思っていたら、application/xml と書いてありました。それは重要ですか? 誰かがその違いを説明できますか?

どのように解決するのですか?

この の違いは テキスト/xml アプリケーション/xml がデフォルトの文字エンコーディングである場合 文字セット パラメータが省略された場合です。

text/xmlとapplication/xmlでは、charsetパラメータが明示的に指定されない場合、動作が異なります。 パラメータが明示的に指定されていない場合、Text/xmlとapplication/xmlは異なる動作をします。 text/xml のデフォルトの charset (すなわち, text/xml のデフォルトの文字セット (すなわち US-ASCII) が何らかの理由で不都合な場合 (たとえば、悪い Web サーバーが悪いなど)、application/xmlは代替手段を提供します("application/xmlのOptional parameters"を参照してください)。 parameters" of application/xml registration in Section 3.2 参照)。

のために テキスト/xml :

RFC2046]に従い、text/xmlエンティティを受信する際、charsetパラメータを省略した場合 を受信した場合、MIME プロセッサと XML プロセッサは、デフォルトの charset 値として はデフォルトの charset 値である "us-ascii"[ASCII] を使用しなければなりません (MUST)。 XML MIME エンティティが送信される場合 XML MIME エンティティが HTTP 経由で送信される場合,デフォルトの文字セット値は charset の値は "us-ascii" のままです。

のために アプリケーション/xml :

charsetパラメータが省略されたapplication/xmlエンティティを受信した場合、charsetパラメータに関する情報は提供されません。 パラメータが省略されている場合、MIME Content-Type ヘッダが提供する MIME Content-Type ヘッダによる charset の情報は提供されません。 適合するXML プロセッサは,この不測の事態に直接対処する [XML] の 4.3.3 節の要件に従わなければならない (MUST)。 のセクション4.3.3の要件に従わなければならない。 しかし,XMLプロセサではないMIMEプロセサは は,次の場合にデフォルトの文字集合を仮定すべきではない(SHOULD NOT)。 が省略された場合,デフォルトの文字セットと仮定してはならない。

では、もし 文字セット パラメータが省略された場合、文字エンコーディングは text/xml はUS-ASCIIになりますが アプリケーション/xml では、文字エンコーディングは文書自体で指定することができます。

さて、インターネット上の経験則として "出力には厳しく、入力には寛容であれ"。つまり、インターネット上でデータを配信する際には、可能な限り標準を満たすようにすることです。しかし、インターネット上でデータを受信し解釈する際に、不具合を見過ごしたり、推測したりするためのメカニズムをいくつか組み込んでおくことです。

ですから、あなたの場合は、2つのタイプのうち1つを選べばいいのです(私がお勧めするのは アプリケーション/xml をお勧めします)、使用する文字エンコーディングを適切に指定してください(安全のために、それぞれのデフォルトの文字エンコーディングを使用することをお勧めします。 アプリケーション/xml の場合は、UTF-8 または UTF-16 を使用します)。