Какое значение Типа контента я должен послать за своей картой сайта XML?

Я думал, что должен отправить "text/xml", но затем я считал, что должен послать "заявление". Это имеет значение? Кто-то может объяснить различие?

124
задан iein valdez 21 February 2013 в 19:22
поделиться

4 ответа

Разница между text / xml и application / xml - это кодировка символов по умолчанию, если параметр charset не указан:

Text / xml и application / xml ведут себя по-разному, когда кодировка параметр не указан явно. Если кодировка по умолчанию (т. Е. US-ASCII) для текста / xml по какой-то причине неудобен (например, плохой веб серверов), application / xml предоставляет альтернативу (см. «Необязательно параметры »регистрации application / xml в разделе 3.2).

Для text / xml :

Соответствует [RFC2046], если объект text / xml получен с параметр charset опущен, процессоры MIME и процессоры XML ДОЛЖЕН использовать кодировку по умолчанию us-ascii [ASCII]. В случаях где объект XML MIME передается через HTTP, по умолчанию значение кодировки по-прежнему "us-ascii".

Для application / xml :

Если получен объект application / xml, где кодировка параметр опущен, информация о charset заголовком MIME Content-Type. Соответствие XML процессоры ДОЛЖНЫ соответствовать требованиям раздела 4.3.3 [XML] которые непосредственно касаются этой непредвиденной ситуации.Однако процессоры MIME которые не являются процессорами XML, НЕ ДОЛЖНЫ принимать кодировку по умолчанию, если параметр charset не указывается в объекте application / xml.

Таким образом, если параметр charset опущен, кодировка символов text / xml будет US-ASCII, а с application / xml кодировка символов может быть указано в самом документе.

Сейчас в Интернете есть эмпирическое правило: «Будьте строги с выходными данными, но терпимыми к входным». Это означает, что при передаче данных через Интернет необходимо максимально соответствовать стандартам. Но встроите некоторые механизмы, чтобы не замечать ошибки или угадывать при получении и интерпретации данных через Интернет.

Поэтому в вашем случае просто выберите один из двух типов (я рекомендую application / xml ) и убедитесь, что правильно указали используемую кодировку символов (я рекомендую использовать соответствующую кодировку символов по умолчанию, чтобы не рисковать , поэтому в случае application / xml используйте UTF-8 или UTF-16).

155
ответ дан 24 November 2019 в 01:08
поделиться

В качестве эмпирического правила, наиболее безопасным для того, чтобы ваш документ правильно воспринимался всеми веб-серверами, прокси и клиентскими браузерами, вероятно, является следующее:

  1. Используйте тип содержимого application/xml
  2. Включите кодировку символов в тип содержимого, вероятно UTF-8
  3. Включите соответствующую кодировку символов в атрибут encoding самого XML документа.

С точки зрения спецификации RFC 3023, которую некоторые браузеры не реализуют должным образом, основное различие в типах содержимого заключается в том, как клиенты должны относиться к кодировке символов, следующим образом:

Для application/xml, application/xml-dtd, application/xml-external-parsed-entity или любого из подтипов application/xml, таких как application/atom+xml, application/rss+xml или application/rdf+xml, кодировка символов определяется в следующем порядке:

  1. кодировка, указанная в параметре charset HTTP-заголовка Content-Type
  2. кодировка, указанная в атрибуте encoding объявления XML в документе,
  3. utf-8.

Для text/xml, text/xml-external-parsed-entity или подтипа типа text/foo+xml атрибут encoding объявления XML в документе игнорируется, и кодировкой символов является:

  1. кодировка, указанная в параметре charset заголовка Content-Type HTTP, или
  2. us-ascii.

Большинство парсеров не реализуют эту спецификацию; они игнорируют HTTP Context-Type и просто используют кодировку в документе. С таким количеством неправильно сформированных документов это вряд ли изменится в ближайшее время.

24
ответ дан 24 November 2019 в 01:08
поделиться

text / xml предназначен для документов, которые будут иметь смысл для человека, если будут представлены в виде текста без дальнейшей обработки, application / xml - для всего остального.

Каждый объект XML подходит для использования с носителем application / xml набрать без доработок. Но при этом не используется тот факт, что Во многих случаях XML можно рассматривать как простой текст. Пользовательские агенты MIME (и пользовательские веб-агенты), которые не имеют явной поддержки application / xml будет рассматривать его как application / octet-stream, для например, предложив сохранить его в файл.

Чтобы указать, что объект XML должен обрабатываться как простой текст по умолчанию используйте медиа-тип text / xml. Это ограничивает кодировку используется в XML-сущности для тех, которые совместимы с требования к типам текстовых носителей, как описано в [RFC-2045] и [RFC-2046], например UTF-8, но не UTF-16 (кроме HTTP).

- http://www.ietf.org/rfc/rfc2376.txt

6
ответ дан 24 November 2019 в 01:08
поделиться

оба в порядке.

text / xxx означает, что в случае, если программа не понимает xxx, имеет смысл показать файл пользователю как обычный текст. application / xxx означает, что показывать его бессмысленно.

Обратите внимание, что эти типы содержимого были изначально определены для вложений электронной почты, прежде чем они были позже использованы в веб-мире.

9
ответ дан 24 November 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: