我正在尝试在浏览器中呈现XML + XSL 2.0,返回带有.xml
内容类型的application/xml
个网页和带有.xsl
的{{1}}个网页。 Safari正在抱怨主要文档:“资源被解释为文档,但是使用MIME类型application / xml进行传输。” (但保持一切正常)。
我想摆脱这条警告信息。 XML文档应该使用哪些内容类型?
答案 0 :(得分:8)
我已成功使用text/xml
将样式表作为text/xsl
(或者可能正如text/xml
一样正常工作)。 text/xsl
被广泛认可,但不是“官方”(据我所知)。
根据RFC 3023:“如果XML文档是未经处理的源XML文档,临时用户可以读取,text/xml
优于application/xml
。MIME用户代理(和Web用户代理) )没有对text/xml
的明确支持将把它视为text / plain,例如,通过将XML MIME实体显示为纯文本。application/xml
当XML MIME实体不可读时更可取用户“。
答案 1 :(得分:6)
窥视WebKit源代码,很容易看出哪种MIME类型对每种资源类型都有效。这不是一个很大的名单。
“Documents”支持以下4种MIME类型:
text/html
text/xml
text/plain
application/xhtml+xml
样式表只有两种有效类型:
text/css
text/xsl
显然,text/html
,text/plain
和text/css
类型并不适用于此处。
如果您真的只想对静音警告感兴趣,那么将.xml
文档作为text/xml
发送,将.xsl
文档发送为text/xsl
就可以了。
另一方面,你承认一切都很好,所以你可能会考虑“如果它没有破坏,不要修复它”的策略。
答案 2 :(得分:0)
在进行任何转换之前,我在PHP中执行此操作:
header("Content-Type: application/xhtml+xml; charset=utf-8");
uft-8的部分非常重要......
答案 3 :(得分:0)
对于价值而言,根据官方IANA注册机构https://www.w3.org/TR/2007/REC-xslt20-20070123/#media-type-registration的https://www.iana.org/assignments/media-types/media-types.xhtml,XSLT的正确媒体类型实际上是application/xslt+xml
。这并不是什么新鲜事,注册最早可以追溯到2007年。但是,浏览器对application/xslt+xml
的支持几乎不存在。