문서 형식 선언

'"문서 형식 선언"(Document Type Declaration) 또는 DOCTYPE이란 어떤 SGML이나 XML 기반 문서 내에 그 문서가 특정 문서 형식 정의(DTD)를 따름을 지정하는 것이다. 본래 DTD에 기반한 SGML 도구를 이용해 문서 해석 가능성과 유효성을 검사하기 위한 목적으로 문서 내에 삽입되었다.

HTML 문서의 규격 판 번호를 명시하는 데서 흔히 볼 수 있다. 웹 브라우저는 문서 형식 선언이 없는 HTML 문서를 쿼크 모드로 렌더링하지만 문서 형식 선언이 있는 HTML 문서를 표준 모드로 렌더링하기 때문에, 문서 형식 선언을 이용해서 어떤 웹 페이지가 모든 웹 브라우저에서 같은 레이아웃으로 제공되도록 할 수 있다. 한편 HTML5은 구조적으로 SGML과 호환될 수 없다. 따라서 HTML5로 구성된 문서에서 문서 형식 선언은 불필요하지만, 웹 브라우저들의 표준 모드를 활성화하기 위해 최소한의 형태로 유지되었다.

구조 편집

문서 형식 선언은 주로 아래 두 가지 구조(PUBLIC, SYSTEM)로 사용된다.

<!DOCTYPE 최상위요소 PUBLIC "FPI" "URI">
<!DOCTYPE 최상위요소 PUBLIC "FPI" "URI" [
(추가 DTD 선언)
]>

여기서 PUBLIC은 DTD가 공중에게 공개되어 있으며 FPI를 부여받았다는 뜻이다. W3C 표준은 모두 FPI를 갖는다. URI를 생략할 경우, 페이지는 쿼크 모드로 렌더링 된다.

<!DOCTYPE 최상위요소 SYSTEM "URI">
<!DOCTYPE 최상위요소 SYSTEM "URI" [
(추가 DTD 선언)
]>

SYSTEM은 PUBLIC과 달리 FPI가 없을 때 사용한다. 이 때 추가 선언은 필요에 따라 사용할 수도, 사용하지 않을 수도 있다.

예시 편집

HTML 4.01 편집

HTML 4.01의 문서 형식은 Strict, Transitional, Frameset으로 나뉘며, 선언도 마찬가지이다. HTML 4.01 Strict는 표현 효과 위주의 마크업 태크들(<b>, <i> 등)을 금지한다.

 <!DOCTYPE HTML PUBLIC
     "-//W3C//DTD HTML 4.01//EN"
     "http://www.w3.org/TR/html4/strict.dtd">

HTML 4.01 Transitional은 HTML 4.01 Strict에서 폐기된 몇 가지 태그를 허용한다.

 <!DOCTYPE HTML PUBLIC
     "-//W3C//DTD HTML 4.01 Transitional//EN"
     "http://www.w3.org/TR/html4/loose.dtd">

HTML 4.01 Frameset은 프레임 구조를 지원한다.

 <!DOCTYPE HTML PUBLIC
     "-//W3C//DTD HTML 4.01 Frameset//EN"
     "http://www.w3.org/TR/html4/frameset.dtd">

XHTML 1.0 편집

XHTML 1.0도 HTML 4.01과 같이 세 가지 DTD로 구분된다.

 <!DOCTYPE html PUBLIC
     "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

 <!DOCTYPE html PUBLIC
     "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 <!DOCTYPE html PUBLIC
     "-//W3C//DTD XHTML 1.0 Frameset//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

XHTML 1.1 편집

XHTML 1.1은 XHTML 모듈화에 따라 정의되었으며, XHTML 1.0 Strict와 동등하게 엄격하다.

 <!DOCTYPE html PUBLIC
     "-//W3C//DTD XHTML 1.1//EN"
     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

HTML5 편집

HTML5은 구조상 DTD로 충분히 정의될 수 없으나 표준 문서를 명시할 필요성이 있으므로 아래와 같은 문서 형식 선언을 갖는다.

 <!DOCTYPE html>

같이 보기 편집

외부 링크 편집