答案 0 :(得分:13)
首先,您要将HTML 4.01 specification与HTML 5 one进行比较。 HTML5与XML的关系比HTML 4.01更紧密(这就是为什么我们有XHTML),因此这个答案将坚持使用HTML 5和XML。
您引用的参考文献在以下几点上都是一致的:
<
应始终用<
表示>
应始终用>
表示&
应始终以&
我同意这一点100%。您永远不希望解析器将文字误认为是指令,因此始终对任何非空格(见下文)字符进行编码是一个坚实的想法。好的解析器知道<![CDATA[ ]]>
中包含的任何内容都不是指令,因此在那里不需要编码。
在实践中,我从不编码<![CDATA[ ]]>
或'
,除非
"
)这两个规范也同意这一点。
因此,唯一的争论点是<tag>"Yoinks!", he said.</tag>
(空格)。在任一规范中唯一提到的是尝试序列化时。如果没有,您应该始终使用文字(空格)。除非您正在编写自己的解析器,否则我认为不需要进行任何类型的序列化,因此这不是重点。