<!ENTITY % boolean "(0 | 1)">
<!-- Parameterentity fuer ja (1) oder nein (0) Fragen -->


<!ELEMENT   Forum       (Thread*)>
<!ATTLIST   Forum
    lastThread          IDREF       #IMPLIED
    lastMessage         IDREF       #IMPLIED
>
<!-- ***************************************************************************
    'Forum' ist das Root-Element und beinhaltet alle anderen Elemente.

    Das Attribut 'lastThread' hat den Typ IDREF, es bezieht sich auf die ID
    des jeweils letzten Threads im Forum
    Das Attribut 'lastMessage' hat den Typ IDREF, es bezieht sich auf die ID
    der jeweils letzten Messages im Forum
**************************************************************************** -->


<!ELEMENT   Thread          (Message)>
<!ATTLIST   Thread
    id                      ID          #REQUIRED
>
<!-- ***************************************************************************
    'Thread' stellt einen Nachrichtenbaum dar.

    Das Attribut 'id' hat den Typ ID und muss vorhanden sein.
**************************************************************************** -->


<!ELEMENT   Message         (Header,MessageContent?,Message*)>
<!ATTLIST   Message
    id                      ID          #REQUIRED
    votingGood              NMTOKEN     #IMPLIED
    votingBad               NMTOKEN     #IMPLIED
    invisible               %boolean;   #IMPLIED
    ip                      CDATA       #IMPLIED
    unid                    CDATA       #IMPLIED
>
<!-- ***************************************************************************
    'Message' stellt eine Nachricht im Thread dar und darf andere 'Message'-
    Elemente enthalten, um so Teilbaeume im Thread zu bilden.

    Das Attribut 'id' hat den Typ ID und muss vorhanden sein.
    Das Attribut 'votingGood' zaehlt die Anzahl der Votings, die das Posting als
    gut befunden
    Das Attribut 'votingBad' zaehlt die Anzahl der Votings, die das Posting als
    schlecht befinden
    Das Attribut 'invisible' bestimmt, ob eine Nachricht angezeigt wird (0
    oder nicht vorhanden) oder nicht (1).
    Das Attribut 'ip' speicher die IP-Adresse des Senders der Nachricht.
    Das Attribute 'unid' enthaelt eine eindeutige Nummer fuer die Nachricht.
**************************************************************************** -->


<!ELEMENT   Header          (Author, Category, Subject, Date,Flags)>
<!-- ***************************************************************************
    'Header' beinhaltet die Header-Informationen der Nachricht in Form von
    Elementen.
**************************************************************************** -->
<!ELEMENT   MessageContent  (#PCDATA)>
<!-- ***************************************************************************
    'MessageContent' beinhaltet den Nachrichtentext einer Nachricht.

    Das Attribut 'mid' hat den Typ IDREF. Es bezieht sich auf die ID der
    entsprechenden Nachricht.
**************************************************************************** -->





<!ELEMENT   Author          (Name, Email?, HomepageUrl?, ImageUrl?)>
<!-- ***************************************************************************
    'Author' enthaelt alle benoetigten und optionalen Daten zum Autor einer
    Nachricht.
**************************************************************************** -->


<!ELEMENT   Category        (#PCDATA)>
<!-- ***************************************************************************
    'Category' enthaelt das Thema der Nachricht.
**************************************************************************** -->


<!ELEMENT   Subject         (#PCDATA)>
<!-- ***************************************************************************
    'Subject' beinhaltet den Titel der Nachricht.
**************************************************************************** -->


<!ELEMENT   Date            EMPTY>
<!ATTLIST   Date
    longSec                 NMTOKEN     #REQUIRED
>
<!-- ***************************************************************************
    'Date' enthaelt die Erstellungszeit der Nachricht.

    Das Attribut 'longSec' speichert die Erstellungszeit als Sekunden seit
    1970.
**************************************************************************** -->

<!ELEMENT Flags (Flag*)>
<!-- ***************************************************************************
    'Flags' enthaelt die Liste der Flags, die zu einem Posting gespeichert
    wurden, z. B. 'redCard' oder 'yellowCard'.
**************************************************************************** -->


<!ELEMENT Flag (#PCDATA)>
<!ATTLIST Flag
    name          CDATA        #REQUIRED
>
<!-- ***************************************************************************
    'Flag' beschreibt ein Flag, das zu diesem Posting gespeichert wird, z. B.
    'redCard' oder 'greenCard'.
**************************************************************************** -->



<!ELEMENT   Name            (#PCDATA)>
<!ATTLIST name
  user CDATA #IMPLIED
>
<!-- ***************************************************************************
    'Name' enthaelt den Namen des Autors.
**************************************************************************** -->


<!ELEMENT   Email           (#PCDATA)>
<!-- ***************************************************************************
    'Email' enthaelt die eMail-Adresse des Autors.
**************************************************************************** -->


<!ELEMENT   HomepageUrl     (#PCDATA)>
<!-- ***************************************************************************
    'HomepageUrl' enthaelt die Homepage-Adresse des Autors.
**************************************************************************** -->


<!ELEMENT   ImageUrl        (#PCDATA)>
<!-- ***************************************************************************
    'ImageUrl' enthaelt die Adresse eines beliebigen Bildes des Autors.
**************************************************************************** -->

<!-- eof -->

