Erstellen einer SimpleDB

Wenden Sie sich per Email an den XIMS-Support (für Universität Innsbruck: xims-support@uibk.ac.at), um für das Objekt SimpleDB freigeschalten zu werden.

Wählen Sie den SimpleDB Objekttyp aus und klicken Sie auf Erstellen.

Geben Sie die Location und den Titel ein.

Bestätigen Sie mit Speichern das Erstellen der SimpleDB.

Als nächstes müssen Sie die Felder der SimpleDB-Datenbank definieren.

Definition der Felder einer SimpleDB

Klicken Sie auf SimpleDB Eigenschaften zuweisen. Sie erhalten folgende Eingabemaske:

Die einzelnen SimpleDB-spezifischen Eingaben werden der Reihe nach durchbesprochen:

  • Stylesheet: Hier müssen Sie das Verzeichnis angeben, in dem sich die Stylesheets befinden. Mehr dazu Stylesheet und gopublic.

  • Anzahl der Einträge pro Seite: Eine Zahl zwischen 1 und 99 eingeben. Diese bestimmt, wieviele Einträge auf einer Seite in der Standardansicht angegeben werden.

Jedes Feld (Eigenschaft) der SimpleDB wird auf dieselbe Art und Weise erstellt:

  • Name: Geben Sie den Namen des Feldes an.

  • Typ: Hier stehen im DropDown-Menü die Datentypen String, String options, Textarea, Boolean, Integer, Datetime und Float zur Auswahl.

    • String: Zeichenkette (einzeilig)

    • String options: Auswahl an Zeichenketten. Wird dieser Type ausgewählt, so erhält man sofort ein zusätzliches Feld zur Eingabe der Auswahlstrings.

      Das Feld Typ ist so eine String options-Eigenschaft.

    • Textarea: Textfeld

    • Boolean: Ja/Nein-Auswahl

    • Integer: Ganze Zahl

    • Datetime: Datum und Uhrzeit. Die Eingabe erfolgt über einen Kalender.

    • Float: Fliesskommazahl

  • Regulärer Prüfausdruck: (to be done)

  • Beschreibung: Erklärung(en) zur Eingabe, welche im Eingabeformular angezeigt wird.

  • Teil des Titels: Ist diese Option ausgewählt, so wird der Inhalt dieses Feldes in der Standardansicht angezeigt.

  • Verpflichtend: Ist diese Option ausgewählt, so ist eine Eingabe in dieses Feld verpflichtend.

  • Verfügbar über gopublic: Ist diese Option ausgewählt, so ist dieses Feld auch in der publizierten Version der Datenbank sichtbar. Mehr dazu Stylesheet und gopublic.

Nach Klicken auf Speichern (d.h. jetzt ist mindestens ein Feld (eine Eigenschaft) definiert) erhalten Sie folgende Standardansicht der SimpleDB:

Nun ist es möglich, Einträge in die Datenbank zu tätigen.

Einträge in eine SimpleDB

Klicken Sie neben Neuer Eintrag auf erstellen. Sie erhalten eine Eingabemaske, wie es der folgende Screenshot zeigt, in dem jedes Feld einem Datentyp entspricht. Die Reihenfolge entspricht der oben angegebenen.

Um das Datum und die Zeit einzugeben, klicken Sie auf das Kalendersymbol. Sie sehen folgendes Bild:

Das Datum wählen Sie aus, indem Sie mit den Pfeilen zum gewünschten Monat navigieren und dann den Tag anklicken. Die Uhrzeit wird durch klicken auf die Stunden bzw. Minuten verändert. Klicken mit gedrückter Shift-Taste bewirkt eine Verkleinerung der Zahl um eins, Klicken ohne gedrückter Shift-Taste das Gegenteil.

Wenn Sie einen Tag anklicken schließt sich das Fenster automatisch. Deshalb ist es zeitsparender, zuerst die Uhrzeit und dann das Datum zu wählen. Ansonsten müssen Sie, um die Uhrzeit einzustellen nochmals auf das Kalendersymbol klicken. Nach dem einstellen der Uhrzeit schließt sich das Fenster nicht automatisch und muss durch klicken auf das x rechts oben geschlossen werden.

Durch klicken auf Speichern wird der Eintrag in der SimpleDB erstellt. Sie gelangen zur Standardansicht des Eintrags.

Die Titelzeile setzt sich aus allen Feldern (Eigenschaften) zusammensetzt, bei denen Sie 'Teil des Titels' angeklickt haben.

Die Standardansicht der SimpleDB hat sich nun wieder geändert. Durch Klicken auf den Datenbanknamen in der Navigationszeile gelangen Sie dorthin.

Nun sehen sie den neuen Eintrag. Zusätzlich zum Titel sehen Sie die ID das Eintrags sowie das Datum und die Uhrzeit der letzten Änderung. Der Eintrag kann bearbeitet, publiziert und gelöscht werden. Sie können auch Rechte an diesem Eintrag vergebe. Details zur Suche finden Sie weiter unten.

Sie können die Einträge der SimpleDB als XML-Datei herunterladen, die sich dann problemlos in Microsoft Access importieren lässt. Bitte beachten Sie dabei, dass der Internet Explorer Probleme macht und Sie deshalb in der Adresszeile von https:// auf http:// wechseln müssen.

Suchen in einer SimpleDB

Sie können in einer SimpleDB nach Einträgen suchen. Dazu gibt es zwei Möglichkeiten:

  1. Sie suchen nach einem Begriff in einem Feld (Eigenschaft), welches Teil des Titel ist: Dann brauchen Sie nur den gewünschten Begriff ins Suchfeld eingeben. Es werden in allen Einträgen alle Felder, die Teil des Titels sind, durchsucht.

  2. Sie suchen nach einem Begriff in einem Feld, das nicht Teil des Titels ist: Der Suchbegriff muss sich aus dem Feldname und dem gewünschten Begriff zusammensetzen, z.B.feld2:auswahl3. Es wird in allen Einträgen das Feld 'feld2' auf den Begriff 'auswahl3' durchsucht.

Logische Verknüpfung mit AND, OR etc. ist erlaubt.

Rechtevergabe in eine SimpleDB

Wenn Sie nicht nur selbst in der SimpleDB Daten erfassen wollen, sondern dies auch andere XIMS-Benutzer tun sollen, dann ist folgendes zu beachten:

  1. Wer einen Eintrag erstellen soll, muss das Recht 'Create' der SimpleDB haben.

  2. Wer einen Eintrag publizieren soll, muss das Recht 'Publish' der SimpleDB haben.

  3. Planen Sie eine Veröffentlichung der SimpleDB, so muss die Rolle 'GEN:PUBLIC' das Recht 'View' haben.

[ top ]

Stylesheet und gopublic

Sie können die SimpleDB in der Standardansicht im XIMS verwenden. Wenn Sie jedoch möchten, dass auch nicht XIMS-Benutzer Zugang zu den Daten haben, müssen diese veröffentlicht werden. Wenn Sie die SimpleDB selbst veröffentlichen, ist noch kein Eintrag veröffentlicht. Sie müssen jeden einzeln veröffentlichen.

Die SimpleDB ist für die Öffentlichkeit sichtbar, wenn sie der Rolle 'GEN:PUBLIC' das Recht 'View' gegeben haben.

Es sind alle Felder für die Öffentlichtkeit sichtbar, bei denen 'Verfügbar über gopublic' angeklickt wurde.

Wenn Sie kein Stylesheet-Verzeichnis angeben, entspricht das Layout der veröffentlichten Version dem von XIMS. Die URL der veröffentlichten SimpleDB erhalten Sie am einfachsten, wenn Sie auf das Status-Icon 'Object is published' klicken.

Stylesheet-Verzeichnis und Namengebung

Um ein eigenes Layout zu verwenden, müssen Sie dazu ein bis zwei XSL-Stylesheets erstellen. Dazu sind folgende Punkte zu beachten:

  1. Das XSL-Stylesheet muss sich im Verzeichnis pubstylesheets/ in ihrem Departmentroot-Verzeichnis befinden.

  2. Das XSL-Stylesheet für die SimpleDB muss so lauten: simpledb_<style>.xls

    Jeder Eintrag wird als SimpleDBItem bezeichnet und um einem Eintrag ein eigenes Layout zu geben, muss auch ein XSL-Stylesheet mit dem Namen simpledbitem_style.xls vorhanden sein. Ist dies nicht der Fall, werden die Einträge im XIMS-Layout dargestellt.

    Für den Platzhalter <style> gibt es folgende Möglichkeiten.

    • default: Dieses Stylesheet wird standardmäßig ausgewählt.

    • special_style: Dann müssen Sie bei der URL der veröffentlichten SimpleDB hinten folgendes anfügen: ?style=special_style

    Sie können also mehrere Layouts definieren. Einerseits wird das angewendet, wenn Sie mehrere SimpleDB-Objekte verwenden, die nach außen hin verschieden dargestellt werden sollen. Andererseits können Sie auch eine SimpleDB auf verschiedene Arten präsentieren.

XML-Struktur einer SimpleDB

Um ein eigenes Layout für die SimpleDB zu erstellen, ist es notwendig, die XML-Struktur eines SimpleDB-Objekts zu kennen. Diese wird hier erklärt, wobei nur auf die Eigenheiten der SimpleDB eingegangen wird.

Das Wurzelelement lautet <document>. Dieses Element hat drei Kindelemente:

  • <object_types>: nicht wichtig

  • <context>: Inhalt aller Einträge, Elternelemente etc., Details siehe weiter unten.

  • <member_properties>: Definition der Felder (Eigenschaften). Details siehe weiter unten.

  • <data_formats>: ebenfalls nicht wichtig

<context>

Der Knoten <context> hat zwei Kindelemente <object> und <session>. Das letztere beinhaltet Informationen zur letzten Session, in welcher das SimpleDB-Objekt bearbeitet wurde. Das Element <object> hat viele Kindelemente, von denen für ein Stylesheet folgende praktisch bzw. wichtig sind:

  • <children>: enthält alle Kindelemente, d.h. die Einträge in die SimpleDB, Details siehe weiter unten.

  • <location_path>: gibt den absoluten Pfad an, z.b. /uniweb/ionen-angewandte-physik/testdb

  • <location>: Location der SimpleDB, z.B. testdb

  • <abstract>: Zusammenfassung

  • <title>: den Titel der SimpleDB, z.B. Testdatenbank

  • <parents>: alle Eltern der SimpleDB, z.b. root, uniweb, ionen-angewandte-physik. Diese können praktisch sein, wenn man nach oben verlinken will.

Die anderen Kindelemente enthalten Informationen zum Zeitpunkt der Erstellung und letzten Änderung der SimpleDB, ob und wann sie veröffentlicht wurde, etc. Es würde den Rahmen und den Sinn dieses HOWTOS sprengen, wenn man dies im Detail ausführen würde. Die gesamte XML-Struktur erhält man, wenn man in der Adresszeile '?passthru=1' anfügt.

<children>

Der Knoten <children> besitzt ein Attribut 'totalobjects', welches die Anzahl der Kindobjekte (=Einträge in die SimpleDB) angibt. Die Kindobjekte haben die Bezeichnung <object>. Jedes <object> hat folgende wichtigen/praktischen Kindelemente:

  • <location>: Location des Eintrags (SimpleDBItem), z.B. 389270.xml

  • <abstract>: Zusammenfassung

  • <title>: Titel des Eintrags (Inhalt aller Felder, für die 'Teil des Titels' angehakt wurde), z.B. Testeintrag

  • <position>: Position in der Datenbank, je neuer die Einträge (bzgl. Änderungsdatum), umso kleiner die Position. Dieses Element kann nützlich sein, wenn man z.B. die fünf neuesten Einträge ausgeben will.

  • <member_values>: Enthalten alle Eingaben in die Felder. Jedes Feld ist ein eigenes Kindelement <member_value>, welches wieder zwei Kindelemente hat: <property_id> und <value>. Ersteres enthält die id, welche dem Feld zugewiesen wurde. Diese kann aus den <member_properties> ausgelesen werden. Das Element <value> enthält den Wert des Feldes. z.B.

    <member_values>

    <member_value> <property_id>311</property_id> <value>auswahl1</value> </member_value>

    <member_value> <property_id>312</property_id> <value>da steht ein text</value> </member_value>

    <member_value> <property_id>310</property_id> <value>Testeintrag</value> </member_value> <member_value> <property_id>313</property_id> <value>1</value> </member_value>

    <member_value> <property_id>314</property_id> <value>1</value> </member_value> <member_value> <property_id>315</property_id> <value>2006-09-14 14:21</value> </member_value> <member_value> <property_id>316</property_id> <value>4.5</value> </member_value>

    </member_values>

<member_properties>

Der Knoten <member_properties> hat soviele Kindelemente <member_property> wie sie Eigenschaften (Felder) in der SimpleDB definiert haben. Jedes <member_property> verfügt über ein Attribut 'id', das sehr wichtig ist, da im <context> ja nur die <property_id> verwendet wird, und über einige Kindelemente, die nun erklärt werden. Die Inhalte dieser Kindelemente können auch leer sein.

  • <position>: gibt die Position als Zahl an, an der das Feld im Eingabeformular steht

  • <name>: der Name, den Sie diesem Feld gegeben haben

  • <description>: die Beschreibung, die Sie eingefügt haben

  • <part_of_title>: Ist '1', wenn für dieses Feld 'Teil des Titels' angehakt wurde, ansonsten '0'.

  • <regex/>: der reguläre Prüfausdruck, den Sie eingegeben haben

  • <type>: den Typ des Feldes, den Sie im Drop-Down-Menü ausgewählt haben

  • <mandatory>: Ist '1', wenn für dieses Feld 'verpflichtend' angehakt wurde, ansonsten '0'.

  • <gopublic>: Ist '1', wenn für dieses Feld 'verfügbar über gopublic' angehakt wurde, ansonsten '0'.

z.B.

<member_properties>

<member_property id="310"> <position>1</position> <name>feld1</name> <description>eine Beschreibung</description> <part_of_title>1</part_of_title> <regex/> <type>string</type> <mandatory>1</mandatory> <gopublic>1</gopublic> </member_property>

[...]

</member_properties>

Will man auf die Elemente der Eigenschaft 'feld2' zugreifen, so wird folgende Vorgehensweise im XSL-Stylesheet vorgeschlagen:

  1. Defintion einer Variablen, die als Inhalt die 'id' der Eigenschaft 'feld2' hat:

    <xsl:variable name="feld2propid" select="/document/member_properties/member_property[name='feld2']/@id"/>

  2. Auflistung aller 'feld2'-Eigenschaften (hier ist der Genauigkeit halber der absolute Pfad in der XML-Struktur angegeben, im XSL-Stylesheet empfiehlt es sich jedoch - wo möglich - relative Pfade zu nennen):

    <xsl:for-each select="/document/context/object/children/object[member_values/member_value/property_id=$propid]">

    <xsl:value-of select="member_values/member_value/value"/>

    </xsl:for-each>

Stylesheet erstellen

Um das XSL-Stylesheet zu erstellen, müssen Sie für den Objekt-Typ XSLStylesheet freigeschalten sein.

XSL-Stylesheets für SimpleDB bzw. SimpleDBItem finden Sie in folgenden Verzeichnissen:

http://www.iqoqi.at/pubstylesheets/

http://www.uibk.ac.at/ionen-angewandte-physik/pubstylesheets/

Das XSL-Stylesheet für das XIMS-Layout finden Sie im Verzeichnis /www/ximsroot/skins/default/stylesheets der XIMS-distribution.

Informationen zu XML und XSLT erhalten Sie unter: http://de.selfhtml.org/xml/index.htm

[ top ]