什么内容类型应该用于XML + XSL演示?

时间:2011-07-16 06:23:27

标签: xml xslt

我正在尝试在浏览器中呈现XML + XSL 2.0,返回带有.xml内容类型的application/xml个网页和带有.xsl的{​​{1}}个网页。 Safari正在抱怨主要文档:“资源被解释为文档,但是使用MIME类型application / xml进行传输。” (但保持一切正常)。

我想摆脱这条警告信息。 XML文档应该使用哪些内容类型?

4 个答案:

答案 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实体不可读时更可取用户“。

请参阅https://tools.ietf.org/html/rfc3023#page-16

答案 1 :(得分:6)

窥视WebKit源代码,很容易看出哪种MIME类型对每种资源类型都有效。这不是一个很大的名单。

“Documents”支持以下4种MIME类型:

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

样式表只有两种有效类型:

  • text/css
  • text/xsl

显然,text/htmltext/plaintext/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-registrationhttps://www.iana.org/assignments/media-types/media-types.xhtml,XSLT的正确媒体类型实际上是application/xslt+xml。这并不是什么新鲜事,注册最早可以追溯到2007年。但是,浏览器对application/xslt+xml的支持几乎不存在。