XML-Know How

Entities und Datenmodularisierung

Die Verwendung von Entities für Dateien kann dazu genutzt werden, eine Vielzahl von Einzeldateien zu mehreren verschiedenen XML-Dokumenten zusammenzustellen. So wäre es denkbar, Lexikon-Artikel als XML-Einzeldateien abzuspeichern und dann in verschiedenen Zusammenstellungen in verschiedenen Produkten zu verwerten (»Das große Lexikon«, »Das Jugend-Lexikon« etc.). Die zentralen Werk-XML-Dateien eines jeden Produktes würden dann fast nur noch aus Entities bestehen, die die einzelnen Artikel in jeweils unterschiedlicher Zusammenstellung vertreten. Ein solches Hauptdokument würde dann z. B. so aussehen:

<?xml version="1.0"?>
<!DOCTYPE lexikon SYSTEM "lexikon.dtd">
<lexikon>

   &vorwort;
   &artikel1;
   &artikel4;
   &artikel7;

   ...
</lexikon>

Die DTD muss dann die Entity-Deklarationen für die anstelle der Entities einzusetzenden Teil-XML-Dateien enthalten:

...
<!ENTITY &vorwort; SYSTEM "vorwort.xml">
<!ENTITY &artikel1; SYSTEM "artikel1.xml">
<!ENTITY &artikel2; SYSTEM "artikel2.xml">
<!ENTITY &artikel3; SYSTEM "artikel3.xml">
...

Jede dieser Dateien muss einen der DTD entsprechenden XML-Abschnitt enthalten, z. B.:

<artikel id="x1234" sprache="deutsch" autor="Chr. Schmitt" redakteur="Meier" status="freigegeben">
<überschrift>Aal<überschrift>
<absatz>Der Aal ist ein <verweis ziel="x8472">Fisch</verweis>, der im Wasser lebt</absatz>
</artikel>

Da das Hauptdokument mit dem Root-Element lexikon bereits die XML- und DOCTYPE-Deklaration enthält, dürfen die Teil-XML-Dateien diese Deklarationen nicht nochmals enthalten. Nach dem »Einbau« der Teil-XML-Dateien in das Hauptdokument per Auflösung der Entities stünden sonst viele XML- und DOCTYPE-Deklarationen mitten im Inhalt: das Gesamtdokument wäre nicht valide. Aus dem gleichen Grund fehlt den Teil-XML-Dateien das Root-Element lexikon.

Keine dieser Dateien stellt für sich ein vollständiges lexikon-Dokument dar, weder die Hauptdatei mit den Entities, noch die Teil-XML-Dateien, die durch diese Entities vertreten werden. Erst die Gesamtheit der Dateien (Hauptdatei mit XML-Deklaration, DOCTYPE-Deklaration und Root-Element; Teildateien mit den Artikel-Daten) bildet ein vollständiges XML-Dokument.

Ein XML-Dokument kann also aus mehreren Dateien bestehen. Der Begriff »XML-Datei« sollte daher mit Bedacht verwendet werden, da eine Datei eben nicht unbedingt ein komplettes und für sich stehendes XML-Dokument enthalten muss. Für ein vollständiges XML-Dokument verwendet man auch den Begriff XML-Instanz.