什么内容类型应该用于XML + XSL表示?
我试图在浏览器中呈现XML + XSL 2.0,返回.xml
页面为application/xml
内容类型,.xsl
页面为text/xml
。 Safari正在抱怨主文档:“资源解释为文档,但是使用MIME类型application/xml传输。” (但保持渲染一切都很好)。什么内容类型应该用于XML + XSL表示?
我想摆脱此警告消息。哪些内容类型应该用于XML文档?
我已经成功地使用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更可取。
'text/xsl'? – yegor256
对不起 - 对于样式表。和text/xml为实例文档。 – kennethmay
根据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是非常重要的部分...
如果他将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/html
,text/plain
和text/css
类型不真正适用在这里。
如果你真的只是在沉默警告感兴趣,发送.xml
文件作为text/xml
和.xsl
文件作为text/xsl
应该做的伎俩。
另一方面,你承认一切都很好,所以你可能会考虑“如果它没有坏,不解决它”的策略。
“XML + XSL 2.0”是否表示您使用XSLT 2.0?有没有支持XSLT 2.0的浏览器? – mzjn
没有浏览器支持,但Saxon CE(alpha)在浏览器中提供了XSLT 2.0:http://www.saxonica。com/ –
对于XML文档,Safari 5和Chrome 15可以使用XSLT 2.0(在Mac上) – yegor256