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라고합니다.