为什么XHTML在脚本和样式标签中有PCDATA?
首先,让我说,我知道XHTML不再是真的了。 然而,这个问题实际上是关于网络的历史。 或者说,这件特别的东西如何成为其历史的一部分。
我已经回答了这个问题,后来看到它作为这个问题的副本被关闭时,我也阅读了答案。 提及它在XHTML中引起的问题让我感兴趣,并且我也开始想知道HTML定义在哪里(如果有的话)的定义。 我发现每个版本的css都明确允许在其定义中使用html注释标签。 首先,这应该意味着应该可以毫无困难地添加外部样式表。 我还发现,XHTML 1.0的确提供了style
和script
的内容 - 标记PCDATA
而不是CDATA
。 我也研究了这些事情的后果。
现在,我不明白这是怎么回事。 我认为这种改变没有任何优势,但我看到很多缺点:
它使脚本和样式表中使用的注释技术导致脚本/样式表根本不被读取。 的确,这种技术在当时已经过时了,但是像这样打破它似乎还有点极端。
它引起各种各样的麻烦,几乎所有的内联JavaScript,因为<
和&
是两种常用的语言字符,通常意味着XML解析器会失败。
试图解决解决2尽可能最好代码即使( //<![CDATA[
和//]]>
你还是会遇到问题与一些代码(代码碰巧有]]>
在后一个<
或&
)
现在我敢打赌,对于我错过的东西肯定有一些积极的东西,否则它不会以XHTML标准结束。 或者,也许有些奇怪的东西我没有想到发生过? 换句话说:尽管XHTML标准存在所有问题,但最终如何实现?
很简单,它是XML解析规则所必需的。 尽管HTML对于不同的元素具有不同的解析规则,并且因此仅适用于HTML词汇表,但XML具有可用于任何词汇表的一致系统,其中XHTML只是其中一种。 这是字符数据的成本,不允许任何元素中的非转义<
或&
字符。
上一篇: Why did XHTML have PCDATA inside script and style tags?
下一篇: google plus doesn't show meta information snippet from xhtml documents