Mit den bisher beschriebenen XML-Mitteln ist es möglich, alle benötigten Informationen für ein Softwarepaket zu speichern. Im nächsten Schritt sollen nun die Daten für alle Pakete, die für ein Betriebssystem installiert sind, in XML abgebildet werden. Den wichtigsten Baustein haben wir schon fertig gestellt, nämlich die DTD für ein Paket. Eine gesamte Systeminstallation ist aber nichts weiter als eine Sammlung von Paketen. Damit ist es nun auch ganz einfach, eine DTD dafür anzugeben. Sie ist in folgendem Listing zu sehen:
<!-- sysinst 1.0 Beschreibung saemtlicher Software-Pakete eines Systems der IRB-Installation Informatikrechner-Betriebsgruppe / Uni Dortmund Benutzung: <!DOCTYPE sysinst PUBLIC "-//UNIDO-IRB//DTD sysinst 1.0//DE" "sysinst.dtd"> --> <!ELEMENT sysinst (swpaket)+> <!ATTLIST sysinst betriebssystem CDATA #REQUIRED installiert-von (zentral | ls1 | ls2 | ls3 | ls4 | ls5 | ls6 | ls7 | ls8 | ls10 | ls11 | ls12) zentral > <!ENTITY % swpaket-dtd PUBLIC "-//UNIDO-IRB//DTD swpaket 1.0//DE"> %swpaket-dtd;
Die DTD ist wirklich einfach: Sie besteht aus dem Wurzelelement sysinst, das über ein Attribut mit der Angabe des Betriebssystems versorgt wird. Ein weiteres Attribut gibt an, wer die Software installiert hat. Der Inhalt von sysinst ist einfach eine Folge von swpaket. Die Definition der entsprechenden DTD wird einfach so übernommen, wie sie auch im letzten Abschnitt vorgestellt wurde.
Mit ganz wenigen Zeilen wurde hier also eine neue DTD geschaffen. Es gibt nun die Möglichkeit, nur ein einzelnes Paket in einer XML-Instanz zu beschreiben oder gleich eine ganz Systeminstallation.
Es fehlt jetzt noch der letzte Schritt. In der Motivation für dieses Anwendung wurde zu Beginn des Kapitels erwähnt, dass die Lehrstühle auch eigene Software installieren. Die Daten dazu können zwar nun mit der sysinst-DTD in XML gespeichert werden, jedoch fehlt noch eine Darstellung für die Software des gesamten Fachbereichs. Auch dies ist wieder einfach zu machen. Die am Fachbereich installierte Software ist eine Sammlung von sysinst-Elementen, für die nun noch ein neues Wurzelelement namens fb-sw deklariert wird. Die neue DTD besteht aus der folgenden wesentlichen Zeile:
<!ELEMENT fb-sw (sysinst)+>
Damit liegt nun eine dreistufige DTD-Staffelung vor, die es flexibel erlaubt, Daten für einzelne Softwarepakete, komplette Systeminstallationen und den gesamten Fachbereich in XML darzustellen (vgl. Abbildung 61).