project 나는 임의의 HTML 파일을 가져 와서 최대한 XHTML로 변환하고 XML 메타 데이터로 래핑합니다. DOCTYPE은 결과 XML 파일이 XHTML 문서가 아니므로 제거됩니다. 그러나 XML 파일에서 랩핑 된 XHTML을 검색 할 때 DOCTYPE을 다시 삽입해야합니다.왜 Frameset DTD를 사용하면 유효성 검사 오류가 발생합니까?
이들은 임의의 HTML 파일이므로 모든 내용을 포함 할 수 있지만 원래 DTD를 저장하거나 결정할 필요가 없습니다. Transitional DTD의 상위 집합 이었기 때문에 Frameset 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>
이 일어나고있는 이유를 설명하고, 내가 진행하는 방법을하시기 바랍니다.