为什么xmp HTML标签被弃用了?

13

可能是重复问题:
<XMP>标签

我当然知道它已经被弃用,而且我知道如何通过使用 <pre> 标签、<code> 标签以及对 <> 进行转义来解决它。

我的问题是,为什么它被弃用?在 <xmp> 标签中放置真正的代码似乎比我们现在所做的所有转义更加优雅,但是,这个方法被忽视了。

有什么想法吗?选择带有转义符号的 <pre> 而不是 <xmp>,是否有原因呢?


我认为你很难得到答案,因为这个决定是在15年前的封闭环境中做出的...无论如何,这已经不是一个相关话题了。也许适合在programmers.stackexchange上讨论。 - Quentin
它不仅仅是被弃用了,在HTML5(我相信在HTML4中也是如此)规范中已经完全删除,不应再得到支持。 - animuson
2
我理解你提出的这两点,但是关于决策是在一个封闭的圈子里做出的:他们肯定有他们的原因,这些原因根源于元素的使用方式(不是由一个封闭的群体使用);至于完全删除它的问题,我并不想使用它,我只是想了解标签或概念本身是否存在任何问题。例如,它是否会带来安全威胁?(我不知道如何)人们是否不想让他们的代码被复制粘贴?这仍然是可能的。pre标签没有任何优势。为什么要删除好东西呢? - cumquaz
5
@animuson - 它并没有完全从HTML5中移除。它在此处列为不符合规定的功能:http://dev.w3.org/html5/spec/obsolete.html#non-conforming-features 更重要的是,它的解析规则在http://dev.w3.org/html5/spec/tree-construction.html#parsing-main-inbody中有描述 - 从那里向下搜索“起始标记其标记名称为“ xmp ””。 - Alohci
1
这本来是一个答案,但问题已关闭。请参见http://www.w3.org/Bugs/Public/show_bug.cgi?id=12235根据HTML5编辑器(评论11和12),这是一个非常接近的决定。 - Alohci
2个回答

6

这篇文章详细描述了xmp的降价。

tl; dr; 为了消除解析html时的歧义。


5

对我来说,最有说服力的原因是使用该标签将使html不可能被视为格式良好的xml。

也就是说,一个标签背后的特殊含义会改变处理文档的方式,这是一个糟糕的先例,使得无法考虑新版本。例如,如果您不知道特定标记规范,就无法跳过未知标记及其内容,也无法判断何时结束。


2
它在HTML 3.2中被标记为已弃用。XML不会考虑。 - Quentin
1
但是 XML 处理背后的同样原因已经存在了(考虑 SGML)。 - Michael Krelin - hacker
不客气。在看到你的评论之前,我已经添加了一些详细说明,但看起来你已经有了这个更为普遍而非详细的想法。 - Michael Krelin - hacker
1
他们没有动 <script><style> - Quentin
1
特别是,您可以在脚本和样式中使用外部引用,但这又怎样呢?内联内容仍然有效。 - Quentin
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接