我工作的project需要隨機的HTML文件,儘可能地將它們轉換爲XHTML,並用一些XML metdata包裝它們。由於生成的XML文件不是XHTML文檔,DOCTYPE被剝離出來。但是,當從XML文件檢索包裝的XHTML時,應該重新插入DOCTYPE。爲什麼使用Frameset DTD會導致驗證失敗?
因爲這些是隨機的HTML文件,它們可能包含任何內容,但我寧願不必存儲或確定原始的DTD。我認爲我應該將Frameset DTD作爲Transitional DTD的超集,並且對所有內容都有效。但是,在同一文檔中使用W3C XHTML Validator時,使用過渡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>
請解釋爲什麼發生這種情況,我應該如何着手。