Abkürzungen in XML-Dateien

Lernziel

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

Handlungsanweisungen

Aufgaben
  1. Ist der Titel einer CD noch nicht bekannt, so definieren Sie bitte eine Abkürzung &kein_titel;. Dort soll stehen „Es ist uns zur Zeit der Titel der CD noch nicht bekannt.“ Fügen Sie einen neuen Datensatz ein. Achten Sie auf die DTD.

Note

Hinweis: Die Definition von Entities funktioniert nicht immer, ist wahrscheinlich abhängig vom verwendeten Parser! Ein Versuch ist es wert.

Eine einfache Abkürzungen

Entities sind wie in einer Textverarbeitung Textbausteine, welche die Eingabe von Standartexten 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, so würde dann der Text „Keine E-Mail angegeben!“ erscheinen.

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