문제

XHTML 문서가 XML로 선언해야한다는 상충되는 정보를보고 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

그러나 다른 곳에서는 (w3.org 포함) DocType를보고 있습니다. ~ 해야 하다 첫 번째입니다 꼬리표 선언.

W3가 말하면 사실이어야합니다. 그러나 아마도 첫 번째 방법을 따르는 페이지/앱이있을 것입니다. 내 위험은 무엇입니까?

편집하다: 방금 페이지를 운영했습니다 W3 유효성 검사기 XML 선언 유무에 관계없이 두 가지 방법을 통과했습니다. 이 시점에서, 나는 그것이 단지 "스타일"이라고 생각합니다.

도움이 되었습니까?

해결책

<?xml version="1.0" encoding="utf-8"?>

... XML의 기본 버전 및 인코딩이므로 전혀 필요하지 않습니다. 텍스트/html로 XHTML을 서비스하는 경우 전혀 없을 것입니다.

그러나 다른 곳에서는 (w3.org 포함) DocType이 첫 번째 태그 여야한다는 것을보고 있습니다.

혼란처럼 들립니다 ... Doctype는 태그가 아니고u003C?xml?> (XML 선언이라고하며 처리 명령어처럼 보이지만 그 중 하나는 아닙니다).

두 가지를 모두 포함하는 경우 XML 선언이 먼저 나와야합니다. 트릭은 IE6의 DocType Sniffer가 페이지에서 첫 번째 일 경우 표준 모드 DocTypes 만 감지하는 것입니다. 즉, XML 선언을 사용할 수 없으며 XML 1.0 및 UTF-8 인코딩을 사용해야합니다 (큰 것은 아닙니다. 손실).

다른 팁

로부터 XHTML 1.1 사양:

위의 XML 선언과 같은 XML 선언은 모든 XML 문서에서 필요하지 않습니다. XHTML 문서 저자는 모든 문서에서 XML 선언을 사용해야합니다. XHTML 문서 작성자는 문서의 문자 인코딩이 기본 UTF-8 또는 UTF-16 이외의 다른 경우 XML 선언을 사용해야하며 인코딩은 더 높은 수준의 프로토콜에 의해 지정되지 않습니다.

http://www.w3.org/tr/xhtml11/conformance.html

http://validator.w3.org/ 만 허용합니다u003C?xml> 전에 물건u003C!DOCTYPE> . 다른 방법 (이전의 doctype? xml)은 검증되지 않습니다.

나는 그것을 포함하지 않았으며 (항상 doctype와 함께 갔다) W3C는 내 XHTML 1.0 엄격한 프로젝트가 "유효하다"고 말했다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top