Daybreakin Things

Posted
Filed under 컴퓨터
요즘 들어 내가 큰 관심을 가지고 있는 웹 표준. 그런데 막상 그 표준을 제대로 지키기 위해 사용하는 DOCTYPE 선언에 대해서는 copy & paste만 해왔을 뿐 그 자체에 대해 자세히 알고 있지는 못했다.

Wikipedia를 찾아보니 설명이 자세히 되어 있었다.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">라는 것을 예로 들어 보겠다.

HTML : 문서의 type을 지정하는데, 웹 문서는 보통 html이라고 쓰면 된다. (그 외의 경우는 본 적이 없다.. -_-)

PUBLIC : SGML에서 정의되는 것으로, 이 문서가 한 어플리케이션에서만 사용되는 것인지, 여러 어플리케이션에서 사용될 수 있는지를 나타낸다. 전자는 "SYSTEM"이라고 적고 후자는 "PUBLIC"이라고 적는다. (역시 웹문서는 다양한 브라우저를 통해 실행되므로 PUBLIC이다)

"-//W3C//DTD XHTML 1.0 Transitional//EN" : 가장 중요한 부분이다. XHTML 1.0을 쓸 건지, Strict 규칙보다 덜 엄격한 Transitional을 쓸 건지, 또 XHTML이 아닌 HTML 표준을 쓸 건지 지정하는 부분이다.

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" : Document Type Defintion 정보가 있는 파일을 가리킨다. 자기 서버에 사본을 복사해서 그 경로를 가리켜도 되지만 보통 w3c 서버에 있는 파일을 가리킨다. DTD 정보는 이 문서에서 사용될 수 있는 태그의 종류와 각 태그의 속성, 속성에 들어갈 수 있는 값을 형식, 특수문자나 문자열을 정의할 수 있는 entity 선언 등을 가진다.

DOCTYPE에 DTD를 바로 inline으로 쓸 수도 있다.

<!DOCTYPE foo [ <!ENTITY greeting "hello"> ]>

위와 같이 하면 &greeting;이라는 문자열이 문서에 있으면 자동으로 hello라는 문자열로 바뀌어 표시된다.