XML DTD

문법이 올바른 XML 문서는 “형식이 좋은”이라고 불립니다。

DTD에 의해 검증된 XML 문서는 “형식이 좋은” 것뿐만 아니라 “유효”한 것입니다。

DTD는 무엇인가요?

DTD 문서 유형 정의(Document Type Definition)을 의미합니다。

DTD XML 문서의 구조 및 유효한 요소와 속성을 정의합니다。

유효한 XML 문서

“유효”한 XML 문서는 “형식이 좋은” 것뿐만 아니라 DTD의 규칙에도 맞아야 합니다:

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

위의 DOCTYPE 선언은 DTD 파일 참조를 포함하고 있습니다. 아래는 DTD 파일의 내용을 보여주고 설명합니다。

XML DTD

DTD의 목적은 XML 문서의 구조 및 유효한 요소와 속성을 정의하는 것입니다:

Note.dtd:

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

위의 DTD에 대한 설명은 다음과 같습니다:

!DOCTYPE note - 문서의 루트 요소는 note로 정의됩니다
!ELEMENT note - note 요소는 다음 요소를 포함해야 합니다: "to, from, heading, body"
!ELEMENT to - to 요소를 "#PCDATA" 유형으로 정의합니다
!ELEMENT from - from 요소를 "#PCDATA" 유형으로 정의합니다
!ELEMENT heading - heading 요소를 "#PCDATA" 유형으로 정의합니다
!ELEMENT body - body 요소를 "#PCDATA" 유형으로 정의합니다

ヒント:#PCDATA는 파싱 가능한 문자 데이터(parseable character data)를 의미합니다.

DTD를 사용한 엔티티 선언

DOCTYPE 선언은 문서에서 사용하는 특수 문자나 문자열을 정의할 수 있습니다:

예제

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note [
<!ENTITY nbsp "ꀤot;>
<!ENTITY writer "Writer: Bill Gates.">
<!ENTITY copyright "Copyright: CodeW3C.com.">
]>
<note>
<to>George</to>
<from>John</from>
<heading>추억하다</heading>
<body>미팅을 잊지 마세요!</body>
<footer>&writer; ©right;</footer>
</note>

ヒント:엔티티는 세 부분으로 구성됩니다: &와 시작되고, 엔티티 이름이 오고, 마지막으로 ;로 끝납니다.

DTD를 언제 사용하나요?

DTD를 통해 독립된 그룹이 데이터 교환의 표준에 동의할 수 있습니다.

DTD를 사용하면 외부에서 받은 데이터가 유효한지 확인할 수 있습니다.

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

DTD를 배우고 싶다면, 우리의 강의를 읽어보세요. DTD 강의

何时 DTD를 사용하지 않나요?

XML에 대해서는 DTD가 필요하지 않습니다.

XML을 테스트하거나 매우 작은 XML 파일을 사용하고 있다면, DTD를 생성하는 것은 시간 낭비일 수 있습니다.

애플리케이션을 개발 중이시라면 규범이 안정되기 전까지 DTD를 추가하지 마세요. 그렇지 않으면 소프트웨어가 검증 오류로 인해 작동을 멈출 수 있습니다.