DTD
약어는 "Document Type Definition"입니다. DTD는 XML 문서의 구조, 요소 및 특성을 정의합니다. 또한 XML 파일이 따라야 하는 규칙 집합을 제공하여 서로 유사한 문서 간의 일관성과 유효성을 보장합니다.
DTD는 다음을 지정합니다:
- 허용되는 요소(태그)
- 요소의 순서와 중첩 방식
- 요소가 가질 수 있는 특성
- 해당 특성에 포함될 수 있는 값의 형식
다음은 자동차 데이터를 XML로 저장하기 위한 DTD 예입니다.
<!DOCTYPE automobile [
<!ENTITY header "Car Details">
<!ELEMENT make (#PCDATA)>
<!ELEMENT model (#PCDATA)>
<!ATTLIST model doors (two | four) #REQUIRED>
<!ELEMENT year (#PCDATA)>
<!ELEMENT engine (#PCDATA)>
<!ATTLIST engine transmission (manual | automatic) #REQUIRED>
]>
위 DTD에서는 다음을 정의합니다:
- header라는 엔터티를 정의하고 그 값으로 "Car Details"를 지정합니다.
- <make>, <model>, <year>, <engine>와 같은 요소는 파싱된 문자 데이터(#PCDATA)를 포함하도록 선언됩니다. 즉, 텍스트를 허용합니다.
- 특성 목록(ATTLIST)은 유효한 특성 값을 정의합니다. 예를 들어 model 요소의 doors 특성에는 반드시 "two" 또는 "four" 중 하나를 지정해야 하며, engine 요소에는 transmission 특성을 포함하고 그 값을 "manual" 또는 "automatic" 중 하나로 설정해야 합니다.
이 자동차 예제는 비교적 간단한 Document Type Definition입니다. 실제 애플리케이션에서 사용되는 DTD, 특히 대규모 XML 데이터 집합을 지원하는 DTD는 수백 줄 또는 수천 줄에 이를 수 있습니다. 작은 DTD는 XML 문서 안에 포함하는 경우가 많지만, 큰 DTD는 별도의 파일(.DTD 확장명)로 저장하고 URL을 통해 참조합니다. XML Schema(XSD)와 같은 최신 스키마 언어는 더 유연한 유효성 검사 옵션을 제공하지만, DTD는 여전히 XML 문서 구조를 정의하는 표준 방식입니다.
NOTE: HTML 2부터 4.01(1995~1999)까지는 DTD를 사용하여 HTML 파일에서 허용되는 태그와 특성을 정의했습니다. HTML5는 외부 DTD 참조를 폐기하고 모든 HTML 문서를 <DOCTYPE html>로 시작합니다.
지식 테스트하기