Какой тип контента следует использовать для представления XML + XSL? - PullRequest
11 голосов
/ 16 июля 2011

Я пытаюсь отобразить XML + XSL 2.0 в браузере, возвращая .xml страниц с application/xml типом контента и .xsl страниц с text/xml. Safari жалуется на основной документ: «Ресурс интерпретируется как документ, но передается с приложением типа MIME / xml». (но продолжает рендерить все просто отлично).

Я хочу избавиться от этого предупреждения. Какие типы контента следует использовать для документа XML?

Ответы [ 3 ]

8 голосов
/ 18 ноября 2011

Я успешно использовал text/xml с таблицей стилей как text/xsl (или, возможно, это нормально, как text/xml, как у вас это работает).text/xsl широко признан, но не является «официальным» (насколько я понимаю).

Согласно RFC 3023: «Если это XML-документ, то необработанный исходный XML-документ читается случайным образомпользователи, text/xml предпочтительнее application/xml. Пользовательские агенты MIME (и агенты веб-пользователей), которые не имеют явной поддержки text/xml, будут обрабатывать его как текст / обычный текст, например, отображая объект XML MIME как обычныйtext. application/xml предпочтительнее, когда сущность XML MIME не читается случайными пользователями. "

См. https://tools.ietf.org/html/rfc3023#page-16

6 голосов
/ 23 ноября 2011

Вглядываясь в источник WebKit, легко увидеть, какие типы MIME считаются допустимыми для каждого типа ресурса. Это не очень большой список.

Следующие 4 MIME-типа поддерживаются для «Документов»:

  • text/html
  • text/xml
  • text/plain
  • application/xhtml+xml

Существует только 2 допустимых типа для таблиц стилей:

  • text/css
  • text/xsl

Очевидно, что типы text/html, text/plain и text/css на самом деле здесь не применяются.

Если вы действительно просто хотите заставить замолчать предупреждения, отправка документа .xml в виде text/xml и документа .xsl в виде text/xsl должна помочь.

С другой стороны, вы признаете, что все воспроизводится нормально, поэтому вы можете рассмотреть стратегию «если не сломано, не исправляйте».

0 голосов
/ 18 ноября 2011

Перед любым преобразованием я делаю это в PHP:

header("Content-Type: application/xhtml+xml; charset=utf-8");

важна часть с uft-8 ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...