Unterabschnitte


Die Dokumenttypdefinitionen

Im nachfolgenden möchte ich die Struktur der Dokument Typ Definition (DTD) erläutern. Ich habe bewusst keine externen Programme (livedtd et all) zur Dokumentation benutzt, so kann ich die Erläuterungen etwas flexibler gestalten. Ich habe dafür folgendes Schema entwickelt.
<elementname>
Name und Beschreibung des Elements
Attributname
Modus
Alle Attribute zum Element

Dabei gilt folgendes:

Erläuterungen der Attribute
Modus
Pflicht $ \rightarrow$ Das Attribut muss mit einem Wert belegt werden.
Optional $ \rightarrow$ Das Attribut kann mit einem Wert belegt werden.
Definiert in
Das Attribut wird in dieser DTD definiert.
Erläuterung der Elemente
In der rechten Spalte werden die Elemente aufgeführt, die innerhalb des aktuell beschriebenen Elementes auftreten können. Dabei haben die folgenden Einträge die Bedeutung:
EMPTY
Das Element hat keine weiteren Kinderelemente
PCDATA
Einfacher Text
Elementname
Es existiert eine Elementdefinition, die entsprechend Wiederholung in dem aktuell beschriebenen Element eingetragen werden kann. Das Element %block nimmt einen besonderen Status ein: Es umschreibt alle Elemente die rekursiv in einem Element auftreten können.


Erläuterung der Struktogrammdefinition

Hinweis
Das wichtigste Attribut bei der anschliessenden Bearbeitung der Struktogramme, ist height bei dem Element struktogramm. Der Standardwert liegt bei 180 mm und veranschlagt damit eine komplette DIN A4 Seite. Weitere Attribute zur Änderung der Größe eines Struktogrammes sind leftangle und rightangle bei dem IF-Element und angle und height bei dem CASE-Element.

[assignment]  [call]  [case]    [declaration]  [description]  [dowhile]    [else]    [exit]    [for]    [if]    [localdecl]  [loop]    [lvardecl]    [modul]    [paramdecl]  [pvardecl]    [repeatuntil]  [return]    [returndecl]  [statement]  [struktogramm]  [switch]    [then]    [vardecl]    [while] 

Element Attribute Inhalt
modul
Hauptelement zu den Nassi-Shneiderman Diagrammen
Attributname Modus Definiert in
name Pflicht struktogramm.dtd
Name des Moduls.
Das Attribut wird beim Export als Dateiname für die Hauptdatei verwendet
description Optional struktogramm.dtd
Weitere Beschreibung des Moduls
(ohne Verwendung z.Z.)
author Optional struktex.dtd
Name des Autors
(ohne Verwendung z.Z.)
mailto Optional struktex.dtd
Email des Autors
(ohne Verwendung z.Z.)
date Optional struktex.dtd
Datum der Erstellung des Moduls
(ohne Verwendung z.Z.)
Elementname Wiederholung
struktogramm Null oder viele
  <modul name="TestProg"
            description="Ein Beispiel">
  </modul>
struktogramm
Hauptelement zu einem Struktogramm
Attributname Modus Definiert in
name Pflicht struktogramm.dtd
Name der Funktion.
Das Attribut wird beim Export als Dateiname verwendet sowie als Label für eine spätere Referenz
width Optional struktex.dtd
StrukTeX-Attribut für
die Breite
height Optional struktex.dtd
StrukTeX-Attribut für
die Höhe
Elementname Wiederholung
description Null oder einmal
paramdecl Null oder einmal
localdecl Null oder einmal
returndecl Null oder einmal
declaration Null oder viele
%block Null oder viele
  <struktogramm name="TestFunc"
            height="80">
  </struktogramm>
description
Element zum beschreibenden Text zu einem Struktogramm.
PCDATA
  <description>
Dieses Struktogramm beschreibt ...
  </description>
paramdecl
Block in dem formale Variablen beschrieben werden.
Elementname Wiederholung
pvardecl Einmal oder viele
  <paramdecl>
  </paramdecl>
pvardecl
Eine einzelne Erläuterung einer formalen Variablen.
Attributname Modus Definiert in
name Pflicht struktogramm.dtd
Name der Variablen
reftype Pflicht struktogramm.dtd
Art der Referenzierung : in, inout, out
description Pflicht struktogramm.dtd
Beschreibung der Verwendung
type Optional struktogramm.dtd
Variablentyp, derzeit ohne weitere Auswertung.
EMPTY
  <pvardecl name="eineVar"
        reftype="in"
        description="Ich bin zu was "
  />
localdecl
Block in dem lokale Variablen beschrieben werden.
Elementname Wiederholung
lvardecl Einmal oder viele
  <localdecl>
  </localdecl>
lvardecl
Eine einzelne Erläuterung einer lokalen Variablen.
Attributname Modus Definiert in
name Pflicht struktogramm.dtd
Name der Variablen
description Pflicht struktogramm.dtd
Beschreibung der Verwendung
type Optional struktogramm.dtd
Variablentyp, derzeit ohne weitere Auswertung.
EMPTY
  <lvardecl name="eineVar"
        description="Ich bin zu was "
  />
returndecl
Eine Erläuterung des Rückgabewertes.
Attributname Modus Definiert in
description Pflicht struktogramm.dtd
Beschreibung des Rückgabewertes
type Optional struktogramm.dtd
Variablentyp, derzeit ohne weitere Auswertung.
EMPTY
  <returndecl 
        description="Ich gebe was "
  />
declaration
Block in dem Variablen (lokale, formale) beschrieben werden.
Attributname Modus Definiert in
title Optional struktogramm.dtd
Titel für die nachfolgenden Deklarationen.
Elementname Wiederholung
vardecl Einmal oder viele
  <declaration title="Formale Parameter">
  </declaration>
vardecl
Eine einzelne Erläuterung einer Variablen.
Attributname Modus Definiert in
name Pflicht struktogramm.dtd
Name der Variablen
description Pflicht struktogramm.dtd
Beschreibung der Verwendung
type Optional struktogramm.dtd
Variablentyp, derzeit ohne weitere Auswertung.
EMPTY
  <vardecl name="eineVar"
            description="Ich bin zu was "
  />
statement
Eine einfache Anweisung.
Attributname Modus Definiert in
height Optional struktex.dtd
StrukTeX-Attribut für
die Höhe
PCDATA
  <statement>
   Wir tun was
  </statement>
assignment
Eine einfache Zuweisung.
Attributname Modus Definiert in
lvalue Pflicht struktogramm.dtd
Variable die den berechneten Wert erhält
rvalue Pflicht struktogramm.dtd
Berechnung
height Optional struktex.dtd
StrukTeX-Attribut für
die Höhe
EMPTY
  <assignment 
    lvalue="ichBekommeWas" 
    rvalue="ichBerechneWas"
  />
if
Binäre Auswahlanweisung (wahr/falsch).
Attributname Modus Definiert in
condition Pflicht struktogramm.dtd
Bedingung der IF-Anweisung
leftangle Optional struktex.dtd
StrukTeX-Attribut für den Winkel der linken Linie
rightangle Optional struktex.dtd
StrukTeX-Attribut für den Winkel der rechten Linie
yestext Optional struktex.dtd
StrukTeX-Attribut für den Text wahr
notext Optional struktex.dtd
StrukTeX-Attribut für den Text falsch
Elementname Wiederholung
then Genau einmal
else Einmal oder garnicht
  <if condition="IstWahr">
     <then>
     </then>
  </if>
then
Block für den wahren Fall in einer IF-Anweisung.
Elementname Wiederholung
%block Null oder viele
else
Block für den falschen Fall in einer IF-Anweisung.
Elementname Wiederholung
%block Null oder viele
case
Mehrfachauswahl
Attributname Modus Definiert in
condition Pflicht struktogramm.dtd
Bedingung für die SWITCH-Auswahl
angle Optional struktex.dtd
StrukTeX-Attribut für den Winkel der Linie
height Optional struktex.dtd
StrukTeX-Attribut für
die Höhe
Elementname Wiederholung
switch Genau einmal oder viele
  <case condition="WarumWas">
  </case>
switch
Auswahlschalter zur Mehrfachauswahl
Attributname Modus Definiert in
choice Pflicht struktogramm.dtd
Wert der Auswahl
position Optional struktex.dtd
StrukTeX-Attribut für die Position des Auswahltextes
Elementname Wiederholung
%block Null oder viele
  <switch choice="IstKlasse">
  </switch>
while
Kopfgesteuerte Schleife, intern wird die Bedingung für den Abbruch generiert.
Attributname Modus Definiert in
condition Pflicht struktogramm.dtd
Bedingung, solange dies gilt wird die Schleife durchlaufen
width Optional struktex.dtd
StrukTeX-Attribut für
die Breite
Elementname Wiederholung
%block Null oder viele
  <while condition="SoLangeWahrIst">
  </while>
dowhile
Fussgesteuerte Schleife, intern wird die Bedingung für den Abbruch generiert.
Attributname Modus Definiert in
condition Pflicht struktogramm.dtd
Bedingung, solange dies gilt wird die Schleife durchlaufen
width Optional struktex.dtd
StrukTeX-Attribut für
die Breite
Elementname Wiederholung
%block Null oder viele
  <dowhile condition="SoLangeWahrIst">
  </dowhile>
repeatuntil
Fussgesteuerte Schleife, intern wird die Bedingung für den Abbruch generiert.
Attributname Modus Definiert in
condition Pflicht struktogramm.dtd
Bedingung, solange bis diese gilt wird die Schleife durchlaufen
width Optional struktex.dtd
StrukTeX-Attribut für
die Breite
Elementname Wiederholung
%block Null oder viele
  <repeatuntil condition="SoLangeBISWahrIst">
  </repeatuntil>
loop
Endlosschleife. Abbruch durch exit
Attributname Modus Definiert in
width Optional struktex.dtd
StrukTeX-Attribut für
die Breite
Elementname Wiederholung
%block Null oder viele
  <loop>
  </loop>
exit
Aussprunganweisung aus einer Loop
Attributname Modus Definiert in
value Optional struktogramm.dtd
Rückgabewert
height Optional struktex.dtd
StrukTeX-Attribut für
die Höhe
EMPTY
  <exit value="EsKannWeiterGaehen" />
for
Kopfgesteuerte Schleife, die Bedingung für den Abbruch wird automatisch durch den Schleifenzähler generiert.
Attributname Modus Definiert in
countervar Pflicht struktogramm.dtd
Zählervariable
start Pflicht struktogramm.dtd
Beginn der Schleife
end Pflicht struktogramm.dtd
Ende der Schleife
increment Pflicht struktogramm.dtd
Der Schleifenzähler wird um diesen Wert erhöht
width Optional struktex.dtd
StrukTeX-Attribut für
die Breite
Elementname Wiederholung
%block Null oder viele
  <for countervar="Jünger"
          start="Urknall" 
          end="JüngsterTag" 
          increment="Gebet">
  </for>
call
Aufruf einer Unterroutine
Attributname Modus Definiert in
subroutine Pflicht struktogramm.dtd
Name der Subroutine die aufgerufenen wird
lvalue Optional struktogramm.dtd
Hat die Subroutine einen Rückgabewert, kann hiermit der Speicherplatz angegeben werden
arguments Optional struktogramm.dtd
Hat die Subroutine Argumente, so sind diese hier einzutrage.
height Optional struktex.dtd
StrukTeX-Attribut für
die Höhe
EMPTY
  <call subroutine="WoAndersGehtEsWeiter"
           arguments="MitDir, MitMir"
  />
return
Rücksprunganweisung aus dem Modul
Attributname Modus Definiert in
value Optional struktogramm.dtd
Rückgabewert
height Optional struktex.dtd
StrukTeX-Attribut für
die Höhe
EMPTY
  <return value="IschBinFetisch" />
%block
Elemente die geschachtelt auftreten können.
Elementname
statement oder
assignment oder
if oder
case oder
while oder
dowhile oder
repeatuntil oder
loop oder
for oder
call oder
return


Erläuterung der Konfigurationsdefinition

Zu dem Programm existiert eine Konfigurationsdatei im XML-Format. Die Datei wird in der Suchreihenfolge /etc/nsd2ltxrc, $HOME/.nsd2ltxrc und ./.nsd2ltxrc verarbeitet.

[application]  [declaration]  [description]  [dviviewer]  [epsviewer]  [ifnotext]  [ifyestext]  [localdecl]  [modul]  [nsd2ltx]  [outputdir]  [paramdecl]  [pdfviewer]  [picheader]  [pngviewer]  [returndecl]  [struktogramme]  [texheader]

Element Attribute Inhalt
nsd2ltx
Hauptelement der Konfigurationsdatei
Elementname Wiederholung
application Null oder einmal
modul Null oder einmal
struktogramme Null oder einmal
application
Element zur Steuerung der Applikation
Attributname Modus Definiert in
verbose Optional application.dtd
Ausgabe der Compilerläufe nicht unterdrücken.
show Optional application.dtd
Nach Abschluss der Kompilation, die erzeugten Dateien mit den externen Programmen anzeigen.
asyncron Optional application.dtd
Die externen Programme werden asyncron aufrufen.
mode Optional application.dtd
Ausgabemodus
Elementname Wiederholung
outputdir Null oder einmal
pdfviewer Null oder einmal
dviviewer Null oder einmal
epsviewer Null oder einmal
pngviewer Null oder einmal
<application verbose='Off'
         show='On'>
</application>
outputdir
Element für den Pfad zum Ausgabeverzeichnis
Elementname Wiederholung
PCDATA Null oder einmal
<outputdir>
/home/dubistes/in/deinem/verzeichnis
</outputdir>
pdfviewer
Element für das externe PDF-Anzeigeprogramm
Elementname Wiederholung
PCDATA Null oder einmal
<pdfviewer>
acroread
</pdfviewer>
dviviewer
Element für das externe DVI-Anzeigeprogramm
Elementname Wiederholung
PCDATA Null oder einmal
<dviviewer>
xdvi
</dviviewer>
epsviewer
Element für das externe EPS-Anzeigeprogramm
Elementname Wiederholung
PCDATA Null oder einmal
<epsviewer>
gv
</epsviewer>
pngviewer
Element für das externe PNG-Anzeigeprogramm
Elementname Wiederholung
PCDATA Null oder einmal
<pngviewer>
xv
</pngviewer>
modul
Element zur Steuerung LaTeX-Definitionen
Elementname Wiederholung
texheader Null oder einmal
picheader Null oder einmal
  <modul>
    <texheader>\documentclass{article}</texheader>
  </modul>
texheader
Element für den Standardtext zu den LaTeX-Dokumentdateien
Elementname Wiederholung
PCDATA Null oder einmal
<texheader>
\documentclass{book}
</texheader>
picheader
Element für den Standardtext zu den LaTeX-Picture Dateien
Elementname Wiederholung
PCDATA Null oder einmal
<picheader>
\documentclass{article}
</picheader>
struktogramme
Element zur Steuerung der Struktogramme
Attributname Modus Definiert in
withFloat Optional application.dtd
Soll das Struktogramm in die Float-Umgebung strukto eingebunden werden.
floatPosition Optional application.dtd
Welchen Positionsparameter hat die Float-Umgebung strukto (H, htbp).
withCenterNSS Optional application.dtd
Soll das Struktogramm in die Umgebung centernss eingebunden werden.
width Optional application.dtd
Standardbreite für Struktogramme sofern kein Attribut width angegeben ist.
height Optional application.dtd
Standardhöhe für Struktogramme sofern kein Attribut height angegeben ist.
Elementname Wiederholung
description Null oder einmal
paramdecl Null oder einmal
localdecl Null oder einmal
returndecl Null oder einmal
declaration Null oder einmal
ifyestext Null oder einmal
ifyestext Null oder einmal
<struktogramme withFloat='On'
         withCenterNSS='On'>
</struktogramme>
description
Element für die Titelzeile zu der Erläuterung eines Struktogrammes
Elementname Wiederholung
PCDATA Null oder einmal
<description>
Erläuterung
</description>
paramdecl
Element für die Titelzeile zu der Erläuterung eines Struktogrammes
Elementname Wiederholung
PCDATA Null oder einmal
<paramdecl>
Funktionsparameter
</paramdecl>
localdecl
Element für die Titelzeile zu der Erläuterung der lokalen Variablen
Elementname Wiederholung
PCDATA Null oder einmal
<localdecl>
Lokale Variablen
</localdecl>
returndecl
Element für die Titelzeile zu der Erläuterung der Rückgabewerte
Elementname Wiederholung
PCDATA Null oder einmal
<returndecl>
Rückgabewert
</returndecl>
declaration
Element für die Titelzeile zu der Erläuterung von Variablen
Elementname Wiederholung
PCDATA Null oder einmal
<declaration>
Variablen
</declaration>
ifyestext
Element für den Standardtext für den TRUE-Zweig einer IF-Abfrage
Elementname Wiederholung
PCDATA Null oder einmal
<ifyestext>
Ja
</ifyestext>
ifnotext
Element für den Standardtext für den FALSE-Zweig einer IF-Abfrage
Elementname Wiederholung
PCDATA Null oder einmal
<ifnotext>
Nein
</ifnotext>




> Ein bisschen Theorie ||  < Ergänzende Hilfsmittel
© 2002 DokuTransData, Aachen
2002-11-13
Jürgen A. Lamers