Felix Riesterer: Meinung: Dateiformat für Gästebuch? (Flatfile)

Beitrag lesen

Lieber Christoph,

einen Punkt hatte ich bisher übersehen:

[...] denn wenn da Unsinn drin steht oder Spam oder anderes soll das natuerlich raus.

Daher wäre noch ein Attribut nötig, das eine Freigabe (oder etwas in der Art) enthält, ob der Eintrag nun öffentlich angezeigt werden soll, oder nicht. Mein Vorschlag wäre:

<!ATTLIST eintrag
  datum  CDATA #REQUIRED
  zeit  CDATA #REQUIRED

moderator (public|private) #REQUIRED

>

Das mit den Instant Messengers... Du meintest:

[...], aber ...

icq   CDATA #IMPLIED
  aim   CDATA #IMPLIED
  yim   CDATA #IMPLIED
  msn   CDATA #IMPLIED
... das ist eine unnoetige Begrenzung der Variabilitaet.
Dafuer sollte lieber ein eigenes unspezifisches Element angeboten werden, z.B.
<!ELEMENT autor (aname,(aadress)*)>
<!ELEMENT aname (#PCDATA )>
<!ELEMENT aadress EMPTY>
<!ATTLIST aadress
  protocol CDATA #REQUIRED
  ref      CDATA #REQUIRED>

Ich denke, die Protokolle für Email und Homepage sind irgendwie fest etabliert, da wird sich wohl kaum etwas ändern, oder? Also warum diese nicht als Attribute für "Autor" realisieren? Die anderen "Adressen" für die diversen Instant Messengers könnte man als mehrfach mögliches leeres Element "im" realisieren, welches die Attribute "protocol" und "ref" enthält, also genau so, wie Du in obigem Beispiel unter "ELEMENT aadress" vorgeschlagen hast. Damit sähe die DTD so aus:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>  
<!DOCTYPE gaestebuch [  
  <!ELEMENT gaestebuch (eintrag)*>  
  <!-- definiert das Grundgerüst des Dateiformates -->  
  
  <!ELEMENT eintrag (autor, nachricht, (im)*)>  
  <!-- definiert den Aufbau eines GB-Eintrags -->  
  <!ATTLIST eintrag  
  datum     CDATA #REQUIRED  
  zeit      CDATA #REQUIRED  
  >  
  
  <!ELEMENT autor (#PCDATA)>  
  <!-- definiert den Aufbau der Daten über den Autor eines Eintrags -->  
  <!ATTLIST autor  
  email     CDATA #IMPLIED  
  homepage  CDATA #IMPLIED  
  >  
  <!-- definiert Email-Adresse und Homepage des Autors (optional) -->  
  
  <!ELEMENT im EMPTY>  
  <!-- definiert ein Element, das Kontakt-Daten für Instant-Messengers enthält -->  
  <!ATTLIST im  
  protocol  CDATA #REQUIRED  
  ref       CDATA #REQUIRED  
  >  
  <!-- Die notwendigen Angaben zum Instant Messaging Dienst werden hier gespeichert -->  
  
  <!ELEMENT nachricht (#PCDATA)>  
  <!-- definiert den Aufbau der Daten für die Nachricht -->  
]>

Käme das in etwa Deinem Vorschlag gleich?

Liebe Grüße aus Ellwangen,

Felix Riesterer.