【发布时间】:2010-12-06 21:04:15
【问题描述】:
我工作的project 采用随机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>
请解释为什么会发生这种情况,以及我应该如何进行。
【问题讨论】:
标签: validation xhtml dtd doctype frameset