DTD - składnia

XML DTD można określić w dokumencie lub przechowywać w oddzielnym dokumencie, a następnie dokument ten można połączyć z dokumentem DTD, aby go użyć.

Składnia

Podstawowa składnia DTD jest następująca -

<!DOCTYPE element DTD identifier
[
   declaration1
   declaration2
   ........
]>

W powyższej składni -

  • DTD zaczyna się od separatora <! DOCTYPE.

  • Na element informuje parser, aby przeanalizował dokument z określonego elementu głównego.

  • DTD identifierto identyfikator definicji typu dokumentu, który może być ścieżką do pliku w systemie lub adresem URL do pliku w Internecie. Jeśli DTD wskazuje ścieżkę zewnętrzną, jest wywoływanaexternal subset.

  • Plik square brackets [ ] dołącz opcjonalną listę deklaracji encji o nazwie internal subset.

Wewnętrzny DTD

DTD jest określane jako wewnętrzny DTD, jeśli elementy są zadeklarowane w plikach XML. Aby odwoływać się do niego jako wewnętrznego DTD, atrybut autonomiczny w deklaracji XML musi być ustawiony nayes. Oznacza to, że deklaracja działa niezależnie od źródła zewnętrznego.

Składnia

Składnia wewnętrznego DTD jest następująca:

<!DOCTYPE root-element [element-declarations]>

gdzie element-główny to nazwa elementu głównego, a deklaracje elementu to miejsce, w którym deklarujesz elementy.

Przykład

Poniżej znajduje się prosty przykład wewnętrznego 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>

Przejdźmy przez powyższy kod -

Start Declaration - Rozpocznij deklarację XML następującą instrukcją.

<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?>

DTD- Bezpośrednio po nagłówku XML następuje deklaracja typu dokumentu , powszechnie określana jako DOCTYPE -

<!DOCTYPE address [

Deklaracja DOCTYPE ma wykrzyknik (!) Na początku nazwy elementu. DOCTYPE informuje analizator składni, że DTD jest powiązany z tym dokumentem XML.

DTD Body - Po deklaracji DOCTYPE następuje treść DTD, w której deklarujesz elementy, atrybuty, encje i notacje -

<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone_no (#PCDATA)>

Zadeklarowano tutaj kilka elementów, które składają się na słownik dokumentu <nazwa>. <! ELEMENT name (#PCDATA)> definiuje nazwę elementu jako typu „#PCDATA”. Tutaj #PCDATA oznacza dane tekstowe z możliwością analizy.

End Declaration- Na koniec sekcja deklaracji DTD jest zamykana za pomocą nawiasu zamykającego i zamykającego nawiasu kątowego (]>). To skutecznie kończy definicję, a następnie dokument XML następuje natychmiast.

Zasady

  • Deklaracja typu dokumentu musi pojawić się na początku dokumentu (poprzedzona tylko nagłówkiem XML) - nie jest to dozwolone nigdzie indziej w dokumencie.

  • Podobnie jak w przypadku deklaracji DOCTYPE, deklaracje elementów muszą zaczynać się od wykrzyknika.

  • Nazwa w deklaracji typu dokumentu musi być zgodna z typem elementu elementu głównego.

Zewnętrzne DTD

W zewnętrznym DTD elementy deklarowane są poza plikiem XML. Dostęp do nich można uzyskać, określając atrybuty systemowe, którymi może być prawny plik .dtd lub prawidłowy adres URL. Aby odwołać się do niego jako zewnętrznego DTD, atrybut autonomiczny w deklaracji XML musi być ustawiony jakono. Oznacza to, że deklaracja zawiera informacje ze źródła zewnętrznego.

Składnia

Poniżej znajduje się składnia zewnętrznego DTD -

<!DOCTYPE root-element SYSTEM "file-name">

gdzie nazwa-pliku to plik z rozszerzeniem .dtd .

Przykład

Poniższy przykład pokazuje użycie zewnętrznego 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>

Zawartość pliku DTD address.dtd są jak pokazano -

<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone (#PCDATA)>

Rodzaje

Możesz odwołać się do zewnętrznego DTD, używając system identifiers lub public identifiers.

System Identifiers

Identyfikator systemowy umożliwia określenie położenia zewnętrznego pliku zawierającego deklaracje DTD. Składnia jest następująca -

<!DOCTYPE name SYSTEM "address.dtd" [...]>

Jak widać, zawiera słowo kluczowe SYSTEM i odniesienie URI wskazujące lokalizację dokumentu.

Public Identifiers

Identyfikatory publiczne zapewniają mechanizm lokalizacji zasobów DTD i są zapisane w następujący sposób:

<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Address Example//EN">

Jak widać, zaczyna się od słowa kluczowego PUBLIC, po którym następuje specjalny identyfikator. Identyfikatory publiczne służą do identyfikacji pozycji w katalogu. Identyfikatory publiczne mogą mieć dowolny format, jednak powszechnie używany format nazywa się Formal Public Identifiers lub FPI.