« Start: DTD

Abkürzungen in XML-Dateien#

../../_images/diverse-verbote.jpg

Lernziel#

Mit Abkürzungen kann man sich Tipparbeit sparen. Außerdem wird der Quelltext übersichtlicher. Wie man das macht? Das lernen Sie hier.

Wichtiger Hinweis:

Die selbst definierte Ersetzungen funktionieren nur, wenn die DTD-Konstrukte direkt im XML integriert sind, wie im Beispiel gezeigt.

Handlungsanweisungen#

Aufgabe:
  • Fall Sie mit einer externen DTD arbeiten, integrieren Sie die DTD-Konstrukte direkt in die XML-Datei.

  • Ist der Titel einer CD noch nicht bekannt, so definieren Sie bitte eine Abkürzung &kein_titel;. Dort soll stehen »Titel der CD noch nicht bekannt.« Fügen Sie einen neuen Datensatz ein. Achten Sie auf die DTD.

Eine einfache Abkürzungen#

Entities sind wie in einer Textverarbeitung Textbausteine, welche die Eingabe von Textbausteinen beschleunigen. Sie kennen sicherlich einige Abkürzungen aus der HTML-Welt, wie z.B.

Ü ä ö ß ...

Mit dem XML-Standard können Sie eigene Abkürzungen definieren:

<!ENTITY Name_der_Entity Textinhalt >

Das Schlüsselwort ist ENTITY. Mit diesem geben Sie der Abkürzung einen Namen. Der eigentliche Inhalt folgt danach.

Wie vom HTML bekannt, beginnen bei der Eingabe diese Abkürzungen mit einem & (Und-Zeichen) und werden mit einem ; (Semikolon) abgeschlossen.

Ein Beispiel#

Da der Text oft vorkommen kann, ist es sinnvoll, ein Entity dafür zu bauen. Würde das Element email später ausgelesen werden, führt das automatisch zu dem Eintrag »Keine E-Mail angegeben!«: Zeilen: 13 (Definition), 26 (Anwendung).

 1<?xml version="1.0" encoding="UTF-8"?>
 2<!DOCTYPE adresse [
 3  <!ELEMENT adresse (anrede, name, strasse, postanschrift, email*)>
 4  <!ELEMENT anrede (#PCDATA)>
 5  <!ELEMENT name (nachname, vorname)>
 6  <!ELEMENT postanschrift (plz, wohnort)>
 7  <!ELEMENT nachname (#PCDATA)>
 8  <!ELEMENT vorname (#PCDATA)>
 9  <!ELEMENT plz (#PCDATA)>
10  <!ELEMENT wohnort (#PCDATA)>
11  <!ELEMENT strasse (#PCDATA)>
12  <!ELEMENT email (#PCDATA)>
13  <!ENTITY email_default "Keine E-Mail angegeben!">
14]>
15<adresse>
16  <anrede>Herr</anrede>
17  <name>
18    <nachname>Becker</nachname>
19    <vorname>Heinz</vorname>
20  </name>
21  <strasse>Schwabenstr. 7</strasse>
22  <postanschrift>
23    <plz>14488</plz>
24    <wohnort>Berlin</wohnort>
25  </postanschrift>
26  <email>&email_default;</email>
27</adresse>