DTD-구문
XML DTD는 문서 내부에 지정하거나 별도의 문서에 보관 한 다음 문서를 DTD 문서에 링크하여 사용할 수 있습니다.
통사론
DTD의 기본 구문은 다음과 같습니다.
<!DOCTYPE element DTD identifier
[
declaration1
declaration2
........
]>
위의 구문에서-
DTD <! DOCTYPE 구분 기호로 시작합니다.
안 element 파서에게 지정된 루트 요소에서 문서를 구문 분석하도록 지시합니다.
DTD identifier문서 유형 정의의 식별자로, 시스템의 파일 경로 또는 인터넷의 파일 URL 일 수 있습니다. DTD가 외부 경로를 가리키는 경우 호출됩니다.external subset.
그만큼 square brackets [ ] 라는 엔티티 선언의 선택적 목록을 묶습니다. internal subset.
내부 DTD
XML 파일 내에서 요소가 선언 된 경우 DTD를 내부 DTD라고합니다. 내부 DTD로 참조하려면 XML 선언의 독립형 속성을 다음과 같이 설정해야합니다.yes. 이것은 선언이 외부 소스와 독립적으로 작동 함을 의미합니다.
통사론
내부 DTD의 구문은 다음과 같습니다.
<!DOCTYPE root-element [element-declarations]>
여기서 root-element 는 루트 요소의 이름이고 element-declarations 는 요소를 선언하는 곳입니다.
예
다음은 내부 DTD의 간단한 예입니다.
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?>
<!DOCTYPE address [
<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
]>
<address>
<name>Tanmay Patil</name>
<company>TutorialsPoint</company>
<phone>(011) 123-4567</phone>
</address>
위의 코드를 살펴 보겠습니다.
Start Declaration − 다음 문장으로 XML 선언을 시작합니다.
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?>
DTD− XML 헤더 바로 뒤에 문서 유형 선언이 이어지며 일반적으로 DOCTYPE이라고합니다.
<!DOCTYPE address [
DOCTYPE 선언에는 요소 이름 시작 부분에 느낌표 (!)가 있습니다. DOCTYPE은 DTD가이 XML 문서와 연관되어 있음을 파서에 알립니다.
DTD Body − DOCTYPE 선언 뒤에는 요소, 속성, 엔티티 및 표기법을 선언하는 DTD 본문이 이어집니다.
<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone_no (#PCDATA)>
여기서 <name> 문서의 어휘를 구성하는 몇 가지 요소가 선언됩니다. <! ELEMENT name (#PCDATA)>는 요소 이름 이 "#PCDATA"유형이되도록 정의합니다 . 여기서 #PCDATA는 구문 분석 가능한 텍스트 데이터를 의미합니다.
End Declaration− 마지막으로 DTD의 선언 섹션은 닫는 괄호와 닫는 꺾쇠 괄호 (]>)를 사용하여 닫힙니다. 이것은 효과적으로 정의를 종료하고 그 후에는 XML 문서가 즉시 뒤 따릅니다.
규칙
문서 유형 선언은 문서의 시작 부분에 나타나야합니다 (앞에 XML 헤더 만 있음). 문서 내 다른 곳에서는 허용되지 않습니다.
DOCTYPE 선언과 유사하게 요소 선언은 느낌표로 시작해야합니다.
문서 유형 선언의 이름은 루트 요소의 요소 유형과 일치해야합니다.
외부 DTD
외부 DTD에서 요소는 XML 파일 외부에서 선언됩니다. 유효한 .dtd 파일 또는 유효한 URL 일 수있는 시스템 속성을 지정하여 액세스 합니다. 이를 외부 DTD로 참조하려면 XML 선언의 독립형 속성을 다음과 같이 설정해야합니다.no. 즉, 선언에는 외부 소스의 정보가 포함됩니다.
통사론
다음은 외부 DTD의 구문입니다-
<!DOCTYPE root-element SYSTEM "file-name">
여기서 file-name 은 확장자 가 .dtd 인 파일입니다 .
예
다음 예제는 외부 DTD 사용을 보여줍니다-
<?xml version = "1.0" encoding = "UTF-8" standalone = "no" ?>
<!DOCTYPE address SYSTEM "address.dtd">
<address>
<name>Tanmay Patil</name>
<company>TutorialsPoint</company>
<phone>(011) 123-4567</phone>
</address>
DTD 파일의 내용 address.dtd 다음과 같습니다.
<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
종류
다음 중 하나를 사용하여 외부 DTD를 참조 할 수 있습니다. system identifiers 또는 public identifiers.
System Identifiers
시스템 식별자를 사용하면 DTD 선언이 포함 된 외부 파일의 위치를 지정할 수 있습니다. 구문은 다음과 같습니다-
<!DOCTYPE name SYSTEM "address.dtd" [...]>
보시다시피 여기에는 SYSTEM 키워드와 문서 위치를 가리키는 URI 참조가 포함되어 있습니다.
Public Identifiers
공개 식별자는 DTD 리소스를 찾는 메커니즘을 제공하며 다음과 같이 작성됩니다.
<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Address Example//EN">
보시다시피 PUBLIC 키워드로 시작하고 그 뒤에 특수 식별자가옵니다. 공개 식별자는 카탈로그의 항목을 식별하는 데 사용됩니다. 공용 식별자는 모든 형식을 따를 수 있지만 일반적으로 사용되는 형식을 공식 공용 식별자 또는 FPI라고합니다.