Konzepte Content-Repräsentation & Markup-Sprachen

9.5 SGML-Architekturen

XML-Namespaces bieten durch die Zuordnung von Namespace-Namen zu Bezeichnern die Möglichkeit, Markup aus verschiedenen Anwendungskontexten in Dokumenten zu verwenden und so die Wiederverwendbarkeit von Inhaltsmodellen und darauf aufbauenden Anwendungskomponenten erhöhen. Hierbei wird also primär das Problem des eindeutigen Zuordnens von Bezeichnern zu Namensräumen gelöst.

Mit dem hier vorgestellten Mechanismus der SGML-Architekturen (der Mechanismus wurde zunächst für SGML definiert, ist aber auch für XML anwendbar) wird die Möglichkeit beschrieben, Regeln, die ein Dokumentschema beschreiben, wiederzuverwenden und durch Erweiterung und Spezialisierung in neuen Kontexten anzuwenden. Dies soll an einem einfachen Beispiel motiviert werden:

Gegeben sei folgende DTD, die ein Schema für Briefe repräsentiert. Abbildung 3 enthält dabei nicht alle Elementtypdefinitionen sondern nur die für das Beispiel relevanten.

Abbildung 3. Allgemeine DTD für Briefe


<!ELEMENT brief    (kopf, inhalt)>
                           
<!ELEMENT kopf     (absender, empfaenger, betreff?, datum?)>
                           
<!ELEMENT datum    (#PCDATA)>
                           
<!ELEMENT inhalt   (anrede, text, schluss)>

    

Angenommen, dieses Schema hätte sich bewährt und eine Firma hätte viele Anwendungskomponenten erstellt, die Dokumente dieser DTD verarbeiten. Da dieses Schema so erfolgreich ist, macht es offensichtlich Sinn, es auch in neuen Anwendungsszenarien anzuwenden, z.B. um spezielle Arten von Briefen auszuzeichnen, wie zum Beispiel Rechnungen, Warenbestellungen und persönliche Anschreiben. Eine DTD für Rechnungen könnte beispielsweise so aussehen:

Abbildung 4. DTD für Rechnungen


<!ELEMENT rechnung         (kopf, inhalt)>
                                   
<!ELEMENT kopf             (absender, empfaenger, rechnungsnummer, 
                           datum, bankverbindung)>
                                   
<!ELEMENT rechnungnummer   (#PCDATA)>
                                   
<!ELEMENT datum            (#PCDATA)>
                                   
<!ELEMENT inhalt           (anrede, aufstellung, schluss)>
                                   
<!ELEMENT aufstellung      (posten+, summe)>

    

Die in Abbildung 4 dargestellte DTD baut auf der allgemeinen Brief-DTD auf, verwendet allerdings teilweise andere GIs und definiert für manche Elementtypen ein spezialisiertes Inhaltsmodell.

Eine DTD definiert normalerweise die Regeln für eine Klasse von Dokumenten. Eine DTD wie die in Abbildung 3 dargestellte, die ein grundlegendes Schema definiert, das von mehreren spezialisierten Dokumentklassen verwendet wird, wird auch SGML-Architektur genannt. Eine SGML-Architektur ist eine DTD, die als Basis für von ihr abgeleitete DTDs verwendet wird. Sehr grob vereinfachend kann man dies mit dem Konzept der Vererbung in objektorientierten Programmiersprachen vergleichen: Die Basis-DTD stellt einen Supertyp (eine Basisklasse) dar, von der spezialisierte, erweiterte Typen abgeleitet werden können.

Kommentare (0)

Ihr Kommentar

Name