DTD 소개

문서 유형 정의 (DTD)는 유효한 XML 문서 구성 요소를 정의할 수 있습니다. 이는 문서 구조를 정의하는 데 사용되는 법적 요소 시리즈입니다.

DTD는 XML 문서 내에서 줄 단위로 선언될 수도 있으며, 외부 참조로도 됩니다.

내부 DOCTYPE 선언

DTD가 XML 소스 파일 내에 포함되어 있다면, 다음과 같은 문법으로 DOCTYPE 선언 내에 포함되어야 합니다:

<!DOCTYPE 루트 요소 [요소 선언]>

DTD를 포함한 XML 문서 예제 (IE5 이상 버전에서 열고 소스 코드 보기를 선택합니다):

<?xml version="1.0"?>
<!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]>
<note>
  <to>George</to>
  <from>John</from>
  <heading>추억</heading>
  <body>미팅을 잊지 마세요!</body>
</note>

이 XML 파일을 브라우저에서 엽니다. 그리고 "소스 코드 보기" 명령을 선택합니다.

위 DTD 설명은 다음과 같습니다:

!DOCTYPE note [ (제2행) 이 문서는 다음과 같이 정의됩니다 note 유형의 문서입니다

!ELEMENT note (제3행) 정의 note 요소는 "to", "from", "heading", "body" 네 개의 요소를 가집니다

!ELEMENT to (第四行) 정의 to 要素는 "#PCDATA" 유형입니다

!ELEMENT from (第五行) 정의 from 要素는 "#PCDATA" 유형입니다

!ELEMENT heading (第六行) 정의 heading 要素는 "#PCDATA" 유형입니다

!ELEMENT body (第七行) 정의 body 要素는 "#PCDATA" 유형입니다

외부 문서 선언

DTD가 XML 소스 파일 외부에 위치하면, 다음과 같은 문법으로 DOCTYPE 정의 내에 포함되어야 합니다:

<!DOCTYPE 루트 요소 SYSTEM "파일 이름">

이 XML 문서는 위의 XML 문서와 동일하지만, 외부 DTD를 가지고 있습니다: (IE5에서 열기원본 코드를 확인하려면 "원본 코드 보기" 명령을 선택하세요。)

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>추억</heading>
<body>미팅을 잊지 마세요!</body>
</note>

이는 DTD를 포함한 "note.dtd" 파일입니다:

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

DTD를 사용하는 이유는 무엇인가요?

DTD를 통해 각 XML 파일은 자신의 형식에 대한 설명을携带할 수 있습니다.

DTD를 통해 독립된 그룹이 표준 DTD를 사용하여 데이터를 일관되게 교환할 수 있습니다.

또한, 애플리케이션이 외부에서 수신한 데이터를 검증하기 위해 표준 DTD를 사용할 수 있습니다.

DTD를 사용하여 자신의 데이터를 검증할 수도 있습니다.