project Я работаю над случайными HTML-файлами, преобразует их в XHTML как можно лучше и обертывает их некоторыми метаданными XML. DOCTYPE лишен, так как полученный XML-файл не является документом XHTML. Однако при извлечении обернутого XHTML из файла XML DOCTYPE следует повторно вставить.Почему использование DTD Frameset приводит к сбою проверки?
Поскольку это случайные файлы HTML, они могут содержать любой контент, но я бы предпочел не хранить или не определять исходный DTD. Я решил, что должен использовать DTD Frameset, поскольку это был просто набор Transitional DTD и был бы действителен для всего контента. Однако при использовании W3C XHTML Validator с тем же документом использование Transitional DTD проходит, но с использованием DTD Frameset происходит сбой.
Я разделил документ до минимума, с помощью которого я могу воспроизвести проблему. Вот версия Frameset:
<!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>
Пожалуйста, объясните, почему это происходит, и как мне действовать.