Inhaltsverzeichnis   Programmierhandbuch


Beschreibung grundlegender Datenstrukturen

Datenbank Änderungen

DTD

<!ELEMENT veranstaltungsverzeichnis ( veranstaltung+)>

<!ELEMENT veranstaltung (      sws,
                               credits,
                               stundenVorlesung,
                               stundenPruefung,
                               definition,
                               referenz*,	
                               mitarbeiter+,
                               bezugsVeranstaltung?,
                               pruefungsordnung+)>

<!ATTLIST veranstaltung
    id                         ID  #REQUIRED
    semester                   CDATA #IMPLIED>

<!ELEMENT sws                  (#PCDATA)>

<!ELEMENT credits              (#PCDATA)> 

<!ELEMENT stundenVorlesung     (#PCDATA)>

<!ELEMENT stundenPruefung      (#PCDATA)> 

<!ELEMENT definition           (kategorie,
                               unterKategorie?,
                               titel,
                               beschreibung,
                               kommentar?,
                               assessment)>

<!ATTLIST definition
    xml:lang                   NMTOKEN  "DE">

<!ELEMENT kategorie            (#PCDATA)>
 
<!ELEMENT unterKategorie       (#PCDATA)>

<!ELEMENT titel                (#PCDATA)>

<!ELEMENT beschreibung         (#PCDATA)>

<!ELEMENT kommentar            (#PCDATA)>

<!ELEMENT assessment           (#PCDATA)>

<!ELEMENT referenz             (#PCDATA)>

<!ELEMENT mitarbeiter          (#PCDATA)>

<!ATTLIST mitarbeiter
  id                           ID #REQUIRED
  url                          CDATA   #IMPLIED>

<!ELEMENT bezugsVeranstaltung  (#PCDATA)>

<!ATTLIST bezugsVeranstaltung
    xml:link                    NMTOKEN #FIXED "simple"
    inline                      NMTOKEN #FIXED "true"
    href                        CDATA #REQUIRED
    role                        CDATA #IMPLIED
    title                       CDATA #IMPLIED
    content-role                CDATA #IMPLIED
    conten-title                CDATA #IMPLIED
    show                        (new | replace | embed) "new"
    actuate                     (user | auto) "user"
    behavior                    CDATA #IMPLIED>

<!ELEMENT pruefungsordnung      (hoert_ws | hoert_ss)+ >

<!ATTLIST pruefungsordnung
  id                             NMTOKEN #REQUIRED>

<!ELEMENT hoert_ws               (#PCDATA)>

<!ELEMENT hoert_ss               (#PCDATA)>

Abstrakte Syntax 1

<!-- 0. Hierarchiestufe --------------------------------------------------------->
semester            =  map schlüssel1 to Veranstaltungen
stundenVorlesung    =  map schlüssel1 to Veranstaltungen
stundenPruefung     =  map schlüssel1 to Veranstaltungen
credits             =  map schlüssel1 to Veranstaltungen
sws                 =  map schlüssel1 to Veranstaltungen
assessment          =  map schlüssel2 to Veranstaltungen
kategorie           =  map schlüssel2 to Veranstaltungen
unterKategorie      =  map schlüssel2 to Veranstaltungen
titel               =  map schlüssel3 to wert
beschreibung        =  map schlüssel3 to wert
kommentar           =  map schlüssel3 to wert
referenz            =  map veranstaltung to wert*
partner             =  map veranstaltung to veranstaltungen
lang                =  map veranstaltung to sprachenmenge
pruefungsordnung    =  map schlüssel4 to Pruefungsordnungsinfo
mitarbeiter         =  map schlüssel1 to MitarbeiterInfo
id                  =  Veranstaltungen
hoererstatus        =  { ss ws }

<!-- 1. Hierarchiestufe --------------------------------------------------------->
schlüssel1          =  string
schlüssel2          =  sprache platzhalter wert
schlüssel2          =  sprache platzhalter typ
schlüssel3          =  sprache platzhalter veranstaltung
schlüssel4          =  pruefungsordnung veranstaltung
Pruefungsordnungsinfo = ss x ws
MitarbeiterInfo     =  titel url veranstaltungen
Veranstaltungen     =  set of nat
veranstaltung       =  nat
nat                 =  N0
wert                =  string
sprachenmenge       =  set of sprache

<!-- 2. Hierarchiestufe --------------------------------------------------------->
sprache             =  DE | EN | FR | ESP ...
platzhalter         =  _
typ                 =  Testat | Teilnahme | Participation | ...
pruefungsordnung    =  nat
ss                  =  nat
ws                 =  nat

Abstrakte Syntax 2: Beschreibung der Indexstruktur


Es gibt zwei Möglichkeiten:




a) semester            =  map schlüssel1 to veranstaltungen



  Semester(ws) { 0 1 3 4 }
  Semester(ss) { 2 5 6 }  
        |          
        |
  assoziatives Array







b) semester            =  map veranstaltung to wert



  Semester(0) ws
  Semester(1) ws
  Semester(3) ws
  Semester(4) ws
  Semester(2) ss
  Semester(5) ss
  Semester(6) ss




    
Beispiel:
XML-Dokument
semester.txt
schlüssel1 = string veranstaltungen = set of veranstaltung veranstaltung = nat nat = N0
stundenVorlesung = map schlüssel1 to Veranstaltungen stundenPruefung = map schlüssel1 to Veranstaltungen credits = map schlüssel1 to Veranstaltungen sws = map schlüssel1 to Veranstaltungen
assessment = map schlüssel2 to Veranstaltungen schlüssel2 = sprache platzhalter typ sprache = DE | EN | FR | ESP ... platzhalter = _ typ = Testat | Teilnahme | Participation | ... Beispiel: assessment(DE_Testat) { 0 1 3 4 } assessment(EN_Participation) { 2 5 6 }
kategorie = map schlüssel2 to Veranstaltungen unterKategorie = map schlüssel2 to Veranstaltungen
titel = map schlüssel3 to wert schlüssel3 = sprache platzhalter veranstaltung veranstaltung = nat wert = string Beispiel: titel(DE_1) WI-Projektstudium
beschreibung = map schlüssel3 to wert kommentar = map schlüssel3 to wert
referenz = map veranstaltung to wert* Beispiel: referenz(1) Buch xxl ISBN 0-000-00000-0
partner = map veranstaltung to veranstaltungen Beispiel: partner(1) { 1 2 5 9 }
lang = map veranstaltung to sprachenmenge sprachenmenge = set of sprache Beispiel: lang(1) { EN FR }
pruefungsordnung = map schlüssel4 to Pruefungsordnungsinfo schlüssel4 = pruefungsordnung# veranstaltung pruefungsordnung# = nat Pruefungsordnungsinfo = ss# x ws# ss# = nat ws# = nat
mitarbeiter = map schlüssel1 to MitarbeiterInfo MitarbeiterInfo = titel url veranstaltungen ss# = nat ws# = nat
Fordere Startseite vom CGI-Script an

weiter: Programmorganisation
zurück: Problemanalyse und Realisation
 

  Inhaltsverzeichnis   Programmierhandbuch