DTD - Syntax

Eine XML-DTD kann entweder im Dokument angegeben oder in einem separaten Dokument gespeichert werden. Anschließend kann das Dokument mit dem DTD-Dokument verknüpft werden, um es zu verwenden.

Syntax

Die grundlegende Syntax einer DTD lautet wie folgt:

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

In der obigen Syntax -

  • DTD beginnt mit dem Trennzeichen <! DOCTYPE.

  • Ein element Weist den Parser an, das Dokument aus dem angegebenen Stammelement zu analysieren.

  • DTD identifierist eine Kennung für die Dokumenttypdefinition, die der Pfad zu einer Datei im System oder die URL zu einer Datei im Internet sein kann. Wenn die DTD auf einen externen Pfad zeigt, wird sie aufgerufenexternal subset.

  • Das square brackets [ ] Fügen Sie eine optionale Liste der aufgerufenen Entitätsdeklarationen bei internal subset.

Interne DTD

Eine DTD wird als interne DTD bezeichnet, wenn Elemente in den XML-Dateien deklariert sind. Um es als interne DTD zu referenzieren, muss das eigenständige Attribut in der XML-Deklaration auf gesetzt seinyes. Dies bedeutet, dass die Deklaration unabhängig von der externen Quelle funktioniert.

Syntax

Die Syntax der internen DTD ist wie folgt:

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

Dabei ist root-element der Name des root-Elements und bei Elementdeklarationen deklarieren Sie die Elemente.

Beispiel

Es folgt ein einfaches Beispiel für eine interne 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>

Lassen Sie uns den obigen Code durchgehen -

Start Declaration - Beginnen Sie die XML-Deklaration mit der folgenden Anweisung.

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

DTD- Unmittelbar nach dem XML-Header folgt die Dokumenttypdeklaration , die üblicherweise als DOCTYPE bezeichnet wird. -

<!DOCTYPE address [

Die DOCTYPE-Deklaration hat ein Ausrufezeichen (!) Am Anfang des Elementnamens. Der DOCTYPE informiert den Parser darüber, dass diesem XML-Dokument eine DTD zugeordnet ist.

DTD Body - Auf die DOCTYPE-Deklaration folgt der Hauptteil der DTD, in dem Sie Elemente, Attribute, Entitäten und Notationen deklarieren. -

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

Hier werden mehrere Elemente deklariert, die das Vokabular des <Name> -Dokuments bilden. <! ELEMENT name (#PCDATA)> definiert den Elementnamen von Typ "#PCDATA". Hier bedeutet #PCDATA analysierbare Textdaten.

End Declaration- Schließlich wird der Deklarationsabschnitt der DTD mit einer schließenden Klammer und einer schließenden Klammer (]>) geschlossen. Dies beendet effektiv die Definition und danach folgt das XML-Dokument sofort.

Regeln

  • Die Dokumenttypdeklaration muss am Anfang des Dokuments erscheinen (vorangestellt nur der XML-Header) - sie ist an keiner anderen Stelle im Dokument zulässig.

  • Ähnlich wie bei der DOCTYPE-Deklaration müssen die Elementdeklarationen mit einem Ausrufezeichen beginnen.

  • Der Name in der Dokumenttypdeklaration muss mit dem Elementtyp des Stammelements übereinstimmen.

Externe DTD

In externen DTD werden Elemente außerhalb der XML-Datei deklariert. Auf sie wird zugegriffen, indem die Systemattribute angegeben werden, die entweder die legale .dtd- Datei oder eine gültige URL sein können. Um es als externe DTD zu referenzieren, muss das eigenständige Attribut in der XML-Deklaration als festgelegt werden no. Dies bedeutet, dass die Deklaration Informationen aus der externen Quelle enthält.

Syntax

Es folgt die Syntax für die externe DTD -

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

Dabei ist Dateiname die Datei mit der Erweiterung .dtd .

Beispiel

Das folgende Beispiel zeigt die externe DTD-Verwendung -

<?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>

Der Inhalt der DTD-Datei address.dtd sind wie gezeigt -

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

Typen

Sie können auf eine externe DTD verweisen, indem Sie entweder verwenden system identifiers oder public identifiers.

System Identifiers

Mit einer Systemkennung können Sie den Speicherort einer externen Datei angeben, die DTD-Deklarationen enthält. Die Syntax lautet wie folgt:

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

Wie Sie sehen, enthält es das Schlüsselwort SYSTEM und eine URI-Referenz, die auf den Speicherort des Dokuments verweist.

Public Identifiers

Öffentliche Kennungen bieten einen Mechanismus zum Auffinden von DTD-Ressourcen und werden wie folgt geschrieben:

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

Wie Sie sehen können, beginnt es mit dem Schlüsselwort PUBLIC, gefolgt von einer speziellen Kennung. Öffentliche Bezeichner werden verwendet, um einen Eintrag in einem Katalog zu identifizieren. Öffentliche Kennungen können jedem Format folgen. Ein häufig verwendetes Format wird jedoch als formale öffentliche Kennungen oder FPIs bezeichnet.