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

问题描述:

我试图在浏览器中呈现XML + XSL 2.0,返回.xml页面为application/xml内容类型,.xsl页面为text/xml。 Safari正在抱怨主文档:“资源解释为文档,但是使用MIME类型application/xml传输。” (但保持渲染一切都很好)。什么内容类型应该用于XML + XSL表示?

我想摆脱此警告消息。哪些内容类型应该用于XML文档?

+1

“XML + XSL 2.0”是否表示您使用XSLT 2.0?有没有支持XSLT 2.0的浏览器? – mzjn

+1

没有浏览器支持,但Saxon CE(alpha)在浏览器中提供了XSLT 2.0:http://www.saxonica。com/ –

+1

对于XML文档,Safari 5和Chrome 15可以使用XSLT 2.0(在Mac上) – yegor256

我已经成功地使用text/xml与样式表作为文本/ xsl(或者这可以确定为text/xml,因为它有工作)。 text/xsl被广泛认可,但不是“官方”(据我所知)。

根据RFC 3023:“如果XML文档是未经处理的源XML文档可被临时用户读取,则text/xml优于application/xml。MIME用户代理(和Web用户代理)对text/xml没有明确的支持将会将其视为text/plain,例如,通过将XML MIME实体显示为纯文本。当临时用户无法读取XML MIME实体时,应用程序/ xml更可取。

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

+0

'text/xsl'? – yegor256

+0

对不起 - 对于样式表。和text/xml为实例文档。 – kennethmay

+0

根据RFC 3023:“如果一个XML文档是未经处理的源XML文档可被临时用户读取,那么text/xml优于application/xml。MIME用户代理(和Web用户代理)没有明确的对text/xml的支持会将其视为text/plain,例如通过将XML MIME实体显示为纯文本。当临时用户无法读取XML MIME实体时,应用程序/ xml更可取。 http://tools.ietf.org/html/rfc3023#page-16 – kennethmay

任何改造我这样做在PHP之前:

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

与UFT-8是非常重要的部分...

+1

如果他将XML服务器端转换为XHTML,并且即使这样也会有问题(IE/MSHTML不支持该MIME类型),这将适用。没有“uft-8”,但是如果输出实际上*为* UTF-8编码,则代码中的“utf-8”才是正确的。这不是XHTML的要求。你没有回答这个问题。 – PointedEars

窥视WebKit的来源,很容易查看哪些MIME类型被认为对每种资源类型有效。这不是一个很大的名单。

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

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

只有2有效类型样式表:

  • text/css
  • text/xsl

显然,text/htmltext/plaintext/css类型不真正适用在这里。

如果你真的只是在沉默警告感兴趣,发送.xml文件作为text/xml.xsl文件作为text/xsl应该做的伎俩。

另一方面,你承认一切都很好,所以你可能会考虑“如果它没有坏,不解决它”的策略。