HTML 문서 형식지 정의 및 중요성 및 XML namespace
문서 형식 선언 또는 DOCTYPE 이란 어떤 SGML이나 XML 기반 문서 내에 그 문서가 특정 문서 형식을 따름을 지정하는 것이다.
구조
<!DOCTYPE 최상위요소 PUBLIC "FPI" "URI">
<!DOCTYPE 최상위요소 PUBLIC "FPI" "URI" [
(추가 DTD 선언)
]>
1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- 문서 형식을 지정해야 하는 이유
문서 형식은 HTML 버전과 종류를 명시함으로써, 브라우저가 문서를 해석하고 출력하는데 직접적인 영향을 준다. 웹 브라우저는 문서형식이 지정되지 않거나, 올바르게 지정되지 않은 HTML 문서를 읽고 해석하는데 어려움을 겪는다. 때문에 화면을 출력하는데 보다 오랜 시간이 소요되며, 또한 제작자의 의도와 다른 화면을 출력할 수 있다. 최근 웹 브라우저는 호환(Quirks) 또는 표준(Strict)처럼 다양한 방식으로 HTML 문서를 해석한다.
브라우저는 올바르게 지정된 문서 형식의 HTML을 표준(Strict) 방식으로 해석하고 출력하지만, 그렇지 않은 HTML은 호환(Quirks) 방식으로 출력한다. 표준 방식은 HTML를 W3C 스펙에 따라 출력하는 방식이며, 호환 방식은 각각의 브라우저마다 사용하는 별도의 스펙에 따라 출력하는 방식이다. 떄문에 호환 방식으로 출력된 HTML은 각각의 브라우저마다 다르게 출력된다.
Quirks 출력 방식(Quirks Rendering Mode)의 단점은 브라우저가 HTML을 읽는데 시간이 더 걸린다. HTML을 해석하는데 시간이 더 걸린다. HTML을 출력하는데 시간이 더 걸린다. HTML을 각각 다르게 출력한다.
기존에 페이지에서는 XHTML 1.0 Transitional 방식으로 적용을 해놓았으나,제대로 된 적용 방식이 아니었다. 해당 설정 내용을 같지만 익스나 크롬상에서 소스 보기로 하면 2칸~3칸정도 랜덤하게 계속 빈공백이 생긴 다음 DOCTYPE 태그가 붙여져있었다.
잘못된 설정 위에 빈 공백이나 줄은 해당 문서형식을 정확하게 web에서 인지할수 없음
1 2 3 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
XML namespace
XML 문서의 목적은 데이터의 교환으로 문서의 통합이 자연스럽게 일어나야 한다. 하지만, 각각의 문서가 동일한 태그명을 가지고 있을 경우 문서 통합시 예상치 못한 문제를 발생할 수 있다.
이러한 문제를 방지하기 위하여 네임스페이스(Namespace)를 사용한다. XML 문서의 경우 혼자서만 작성하고 사용하는 것이 아니라, 여러 사람이나 단체, 기관에서 작성하고 사용하고 있다.
이 경우, XML 문서의 통합이나 공유가 빈번하게 일어날 수 있다. 이 경우 이름이 충돌하게 된다면 XML 문서를 올바르게 사용할 수 없을 것이다. 그렇기 때문에 개인이나 단체 혹은 기관에서는 자신이 작성한 XML문서를 구분하기 위한 표시를 해둘 필요가 있다.
- 네임스페이스(Namespace)의 활용
네임스페이스(Namespace)는 앞에서 설명했듯이 문서의 공유나 통합시 이름 충돌을 피하기 위하여 사용된다. 네임스페이스(Namespace)는 XML 스키마, XSLT 등에서도 사용한다.
XML Namespace는 사용자가 필요 시 지정해 쓸 수 있고, XML 관련 기술의 표준에서 정한 Namespace도 있다. 표준에서 Namespace는 반드시 지정된 URI를 사용하며, 이는 XML Parser나 Processor가 특정 처리를 위해 미리 약속했기 때문이다.
XML 표준에서는 XML을 이용하여 새로운 마크업 언어를 만들 때 마다 Namespace를 부여한다.
'IT > web' 카테고리의 다른 글
Session Daemon 설치 (0) | 2011.06.24 |
---|