Elektronisches Publizieren - HTML / SGML / XML - Zurück zur Gliederung
   
 

Erstellen einer einfachen DTD

Zum besseren Verständnis soll hier ein einfache DTD erstellt werden. Dabei werden Attribute und Entitäten außer acht gelassen. Als Beispiel wird ein sehr einfacher Artikel genommen.

Vorgehensweise beim Erstellen einer DTD:

  • Dokumentanalyse
  • Struktur des Dokuments vergegenwärtigen (z.B. mit einem Strukturdiagramm)
  • Markup-Deklarationen generieren

Dokumentanalyse

Ziele:

  • Begrenzen des Anwendungsbereichs der DTD
    • Gruppierung von Dokumenten mit ähnlichen Eigenschaften oder Verwendungszwecken in Klassen, z.B. Texte, die von einer Person zur anderen geschickt werden, sind in der Klasse BRIEFE zusammengefaßt.
  • Definieren einer Strategie für die DTD
    • Warum wird diese DTD geschrieben? Wie wird sie angewendet werden?
    • Welche Probleme sollen gelöst werden? Welche Ziele erreicht werden?
    • Gibt es eine frühere Version, auf der man aufbauen könnte?
  • Bestimmen der voraussichtlichen Nutzer
  • Wählen eines Namens
  • Erkennen der logischen Elemente in der Dokumentklasse
    • Ergebnis ist eine Liste der Elemente, Attribute und Entitäten.
  • Unterscheiden zwischen Elementen und Attributen
    • Unterscheiden zwischen strukturierenden Daten (Elemente) und inhaltsbeschreibenden Daten (Attribute)

Beispiel einfacher Artikel:

Ein Artikel besteht aus folgenden Elementen (angenommen, diese wurden nach einer ausführlichen Dokumentanalyse herausgefunden):

  • Titel (Haupttitel, Untertitel)
  • Autor (Vorname, Name)
  • Paragraphen
  • Abschnitt
  • Abschnittstitel
  • Unterabschnitt
  • Unterabschnittstitel
  • Liste
  • Listentitel
  • Listenelement

Vergegenwärtigung der Struktur

Da die Elemente eines einfachen Artikels herausgefunden wurden, muß nun geklärt werden, in welchen Strukturen diese Elemente zueinander stehen (z.B. hierarchisch, nebeneinander, mehrmals benutzt etc.)

Dazu eine Anmerkung zu den Konnektoren in der SGML-DTD:

Konnektoren definieren die Beziehungen zwischen den Elementen in einer Modellgruppe.
Eine Modellgruppe definiert die Bestandteile eines Dokuments, z.B. andere Elemente oder Text.

Mögliche Konnektoren:
"," Sequence Reihenfolge, ein Element kommt immer nach dem anderen.
"&" And Beliebige Reihenfolge, aber jedes Element muß dabei einmal erscheinen.
"|" Or Genau ein Element kann erscheinen.
Occurance Indicators (Erscheinungsweise)
? Optional Element kann nicht oder einmal erscheinen.
+ Wiederholung Element kann einmal oder mehrmals erscheinen.
* Optional und Wiederholung Element kann nicht, einmal oder mehrmals erscheinen.

Beispiel einfacher Artikel:
Element mögliche enthaltene Elemente Konnektor / Occurance Indicator
Titel Haupttitel, Untertitel ?
Haupttitel   ?
Untertitel   *
Autor Vorname, Nachname *
Paragraphen   *
Abschnitt Abschnittstitel, Paragraphen, Unterabschnitt, Liste
+
Abschnittstitel   ?
Unterabschnitt Unterabschnittstitel,Paragraphen, Liste *
Unterabschnittstitel   ?
Liste Listentitel, Listenelement *
Listentitel   ?
Listenelement   +

Markup-Deklaration

<!-- Dies ist eine Kommentarzeile -->
<!-- Einfache Artikel-DTD -->
<!-- Am Anfang steht das Container-Element, daß den gleichen Namen wie die DTD hat. -->
<-- Element Minimization Content -->
<!ELEMENT Artikel - - (Titel?, Autor*, Abschnitt+)>
<!ELEMENT Titel - - (TIT?, UT*)>
<!ELEMENT TIT - - (#PCDATA)>
<!ELEMENT UT - - (#PCDATA)>
<!ELEMENT Autor - - ((Vorname+, Nachname)*)>
<!ELEMENT Vorname - - (#PCDATA)>
<!ELEMENT Nachname - - (#PCDATA)>
<!ELEMENT Abschnitt - - ((AT?,Uabschnitt*,Liste*, P*)*)>
<!ELEMENT AT - - (#PCDATA)>
<!ELEMENT Uabschnitt - - ((UaT?,Liste*,P*)*)>
<!ELEMENT UaT - - (#PCDATA)>
<!ELEMENT Liste - - (Listtit?, Listel+)>
<!ELEMENT Listtit - - (#PCDATA)>
<!ELEMENT Listel - - (#PCDATA)>
<!ELEMENT P - - (#PCDATA)>

Beispiel eines SGML-Dokumentes

    Linksammlung HTML / SGML / XML / Webdesign
   

16.11.2000
dtd.html
© V. Petras, 2000