什么使得XHTML(和其他XML语言)应用程序与其他基于SGML的语言是文本?不是XML文件的文本文件吗?
答案 0 :(得分:3)
XHTML是XML的子集; XML的媒体类型/ mime是 text / xml ,而XHTML的媒体类型/ mime是 application / xhtml + xml 。
通常,HTML基本上被视为非常松散地解释的纯文本。因为HTML的垃圾状态声誉XHTML是为了迫使Web设计人员和Web开发人员编写干净的HTML代码而创建的。 Gecko(Firefox)和Presto(Opera)浏览器正确地破坏页面并显示格式错误的XML解析错误,而WebKit(Chrome / Safari)和Trident(仅限Internet Explorer 9.0+)在失败时失败并且仅停止呈现页面。
作为text / html提供的XHTML应用程序不是XHTML,它是带有XHTML doctype的HTML。
要将XHTML代码作为XHTML应用程序提供,必须将其作为application / xhtml + xml提供。
XHTML也旨在向后兼容HTML。
以下PHP代码将查看客户端浏览器发送的标题,并在浏览器支持的情况下将该页面作为XHTML应用程序提供(所有Chrome,Safari 3.0+(可能是1.0)),Mozilla Suite 0.8 + /所有Firefox和Opera 7.0+(可能是6.0)支持XHTML。只有Internet Explorer 8.0及更早版本具有不支持XHTML的任何市场份额。 KHTML浏览器(Konqueror)DO支持XHTML,但我认为4.4确实/没有为服务器提供正确的标头。
<?php
$http_accept_xhtml = stristr($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml');
if ($http_accept_xhtml) {$mime = 'application/xhtml+xml';}
else {$mime = 'text/html';}
header('Content-Type: '.$mime);
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
?>
如果您足够智能,可以在遇到错误时修复错误,那么XHTML优于HTML。它更严格,但这是重点,更不用说主观性了。 XHTML中的X代表可扩展性,所以如果你做一些阅读,它会在HTML之前支持SVG和其他语言。
答案 1 :(得分:0)
对于多种数据,有几种可接受的MIME类型。例如,XML可以是text / xml或application / xml(http://tools.ietf.org/html/rfc3023)。
HTTP充满了多种正确的做事方式;它是被很多人设计和使用的副产品。它也在不断发展。一般来说,即使设计某种东西只有一种方法,也可以采用多种方式进行设计,在有足够的人接受它们后,这些方法成为事实上的标准。
如果你没有发现任何问题,说你的XHTML和SGML都是“应用程序”,一切仍然有效,它会让你更快乐,那就去吧。