我从事的项目采用随机 HTML 文件,尽可能将它们转换为 XHTML,并用一些 XML 元数据包装它们。由于生成的 XML 文件不是 XHTML 文档,因此删除了 DOCTYPE。但是,当从 XML 文件中检索包装的 XHTML 时,应该重新插入 DOCTYPE。
因为这些是随机的 HTML 文件,它们可以包含任何内容,但我宁愿不必存储或确定原始 DTD。我认为我应该使用 Frameset DTD,因为它只是 Transitional DTD 的超集,并且对所有内容都有效。但是,当对同一文档使用W3C XHTML Validator时,使用 Transitional DTD 会通过,但使用 Frameset 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>
这是过渡版本:
<!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>
请解释为什么会发生这种情况,以及我应该如何进行。