Validation 为什么使用框架集DTD会导致验证失败?
我所做的工作是获取随机HTML文件,尽可能地将它们转换为XHTML,并用一些XML数据包装它们。DOCTYPE被剥离,因为生成的XML文件不是XHTML文档。但是,当从XML文件检索包装好的XHTML时,应该重新插入DOCTYPE 因为这些是随机的HTML文件,它们可以包含任何内容,但我更希望不必存储或确定原始DTD。我想我应该使用框架集DTD,因为它只是过渡DTD的超集,对所有内容都有效。但是,当对同一文档使用时,使用过渡DTD会通过,但使用框架集DTD会失败 我已将文件精简到最低限度,以便重现问题。以下是框架集版本:Validation 为什么使用框架集DTD会导致验证失败?,validation,xhtml,dtd,doctype,frameset,Validation,Xhtml,Dtd,Doctype,Frameset,我所做的工作是获取随机HTML文件,尽可能地将它们转换为XHTML,并用一些XML数据包装它们。DOCTYPE被剥离,因为生成的XML文件不是XHTML文档。但是,当从XML文件检索包装好的XHTML时,应该重新插入DOCTYPE 因为这些是随机的HTML文件,它们可以包含任何内容,但我更希望不必存储或确定原始DTD。我想我应该使用框架集DTD,因为它只是过渡DTD的超集,对所有内容都有效。但是,当对同一文档使用时,使用过渡DTD会通过,但使用框架集DTD会失败 我已将文件精简到最低限度,以便重
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:html="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Make The Move</title>
</head>
<body style="background: none;">
<h3 id="why">Why should I move to Linux?</h3>
</body>
</html>
行动
我为什么要转向Linux?
以下是过渡版本:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:html="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Make The Move</title>
</head>
<body style="background: none;">
<h3 id="why">Why should I move to Linux?</h3>
</body>
</html>
行动
我为什么要转向Linux?
请解释为什么会发生这种情况,以及我应该如何进行。框架集DTD不是过渡的“超集”。它是一种特殊的DTD,仅用于布局框架,而不用于布局内容(标签内部除外)。它只允许
和
作为
标记的子项
这是规格
除非您知道您的页面可能有框架,否则请坚持使用过渡或严格的DTD。正如Chetan所指出的,框架集DTD应该只在您需要框架的情况下使用,即使如此,我还是建议使用过渡DTD。如果你不依赖于框架,严格是一条路要走