ELEMENT database (description?, (include | table | view | form | function | sequence | initialization)*, changelog?) ATTRIBUTE name string title string charset string datasource string readonly bool
Attribut | Typ | Pflicht | Default | Beschreibung |
---|---|---|---|---|
name | string | - | n/a | Ein eindeutiger Name welcher diese Datenbank identifiziert. Default ist der Dateiname. Sollte kleingeschrieben und ein valider XML-, SQL-Bezeichner sein. |
title | string | - | n/a | Title ist eine Beschriftung, welche in der Nutzeroberfläche angezeigt werden sollte wenn das Objekt anzeigt wird. Beachten sie, dass der Text ein Platzhalter sein darf, welcher für die angezeigte Sprache übersetzt wird. |
charset | string | - | n/a | Der bevorzugte Zeichensatz welcher verwendet wird wenn Datenbankobjekte erstellt werden und/oder mit der Datenbank kommuniziert wird. Der Zeichensatz kann nur zum Zeitpunkt der Erstellung der Datenbank gesetzt werden. Wenn Sie sich dafür entscheiden, eine vorhandene Datenbank zu verwenden, beachten Sie bitte, dass der tatsächlich verwendete Zeichensatz ein anderer sein könnte. |
datasource | string | - | n/a | Die Interpretation des Attributs datasource (Datenquelle) hängt von der Implementierung ab. Für das Yana Framework ist es eine benannte Datenquelle. Sie können benannte Datenbankverbindungen über das Administrationsmenü setzen. |
readonly | bool | - | no | Sie können die Datenbank auf schreibgeschützt setzen, um zu verhindern dass Änderungen vorgenommen werden. Tun Sie dies wenn Sie ein Datenbakviewer erstellen möchten, oder eine Anwendung auf CD-ROM. |
Ein Wurzelknoten, welcher die wichtigsten Eigenschaften und/oder Anforderungen spezifiziert. Diese können verwendet werden, wenn die Datenbank über ein Skript erstellt wird, oder ein Datenbankclient eine Verbindung herstellt.
Der Zeichensatz (charset) soll während des Anlegens der Datenbank gesetzt werden. Typische Zeichensätze sind: utf-8, ascii, iso-8859-1. Beachten Sie, dass einige DBMS verschiedene Schreibweisen desselben Zeichensatzes haben, oder Zeichensätze unterstützen, die andere DBMS nicht anbieten. Die Implementierung muss eine Liste von gültigen Zeichensätzen zur Verfügung stellen und automatisch auf die korrekte Schreibweise für das Ziel-DBMS abbilden. Die Implementierung kann einen Fehler melden, wenn ein nicht unterstützter Zeichensatz verwendet wird.
Die Datenquelle (datasource) ist im Allgemeinen ein Bezeichner für einen bestimmten Satz von Verbindungsparametern zu einer spezifischen Datenbank. Das kann eine JNDI Data-Source für Java, eine ODBC Data-Source für C#, oder eine andere benannte Datenquelle für eine andere Sprache sein.
Wenn eine Oberfläche für eine Datenbank dargestellt wird, kann die Implementierung das Attribut title der Datenbank als Überschrift wählen.
ELEMENT description (#PCDATA)
Die Beschreibung dient zwei Zwecken: 1. der Offline-Dokumentation 2. der Online-Dokumentation.
Eine Beschreibung ist stets optional. Beachten sie, dass der Text ein Platzhalter sein darf, welcher für die angezeigte Sprache übersetzt wird.
Der Formulargenerator kann die Beschreibung verwenden, um auf einer generierten Oberfläche kontextsensitive Hilfe, oder Zusatzinformation zur Verfügung zu stellen (abhängig von der Implementierung).
ELEMENT include (#PCDATA)
Datenbankdefinitionen können in mehrere Dateien geteilt und rekursiv eingebunden werden. Zum Beispiel kann das notwendig sein, wenn Sie eine Referenz auf eine Tabelle erstellen möchten, welche an einer anderen Stelle definiert worden ist.
Die Liste der eingebundenen Dateien (Inlcudes) kann entweder Dateinamen, oder Bezeichner enthalten, welche durch die Anwendung zu Dateinamen umgewandelt werden können.
Beachten Sie, dass Sie nur Datenbankdefinitionen einbinden sollten, welche dieselbe Datenquelle (datasource) verwenden.
Die Kindknoten der Database-Tags der eingebundenen Dateien sollten in der Reihenfolge ihres Auftretens zum Datenbankknoten der Quelldatei hinzugefügt werden. Die Database-Elemente selbst sollen ignoriert werden. Wenn die eingebundene Datei weitere Dateien einbindet, dann sollten diese rekursiv behandelt werden. Sollte eine Datei mehrfach gelistet sein, so muss sie genau 1 Mal eingebunden werden. Falls eine Datei rekursiv eine weitere einbindet, welche jedoch bereits geladen wurde, so muss diese übersprungen und darf nicht zum zweiten Mal geladen werden. Eingebettete Dateien dürfen keine bereits vorhandenen Objekte redefinieren. z.B. darf eine eingeschlossene Datei nicht eine Tabellendefinition der Quelldatei überschreiben. Wenn ein bereits vorhandenes Element gefunden wird, muss ein Fehler gemeldet werden.
ELEMENT sequence (description?) ATTRIBUTE name string start integer increment string min integer max integer cycle bool
Attribut | Typ | Pflicht | Default | Beschreibung |
---|---|---|---|---|
name | string | yes | n/a | Ein eindeutiger Name welcher diese Zahlenfolge identifiziert. Sollte kleingeschrieben und ein valider XML-, SQL-Bezeichner sein. |
start | integer | - | n/a | Eine Zahlenfolge (Sequence) fängt immer mit einem Startwert an. Default ist der Minimalwert für aufsteigende, bzw. der Maximalwert für absteigende Zahlenfolgen. Hinweis: der Startwert muss im Bereich der minimalen und maximalen Zahl liegen. |
increment | string | - | 1 | Ein Inkrement (oder Schrittweite) spezifiziert die Zahl, welche zur Zahlenfolge addiert wird, zur Berechnung des Nachfolgers ihres aktuellen Wertes. |
min | integer | - | n/a | Der Minimalwert ist eine Untergrenze für die Werte einer Zahlenfolge. Alle Werte müssen größer oder gleich dem Minimalwert sein. Der Minimalwert kann nicht größer als der Maximalwert sein. Default ist 1 für aufsteigende und PHP_INT_MIN für absteigende Zahlenfolgen. |
max | integer | - | n/a | Der Maximalwert ist eine Obergrenze für die Werte einer Zahlenfolge. Alle Werte müssen kleiner oder gleich dem Maximalwert sein. Der Maximalwert kann nicht kleiner als der Minimalwert sein. Default ist PHP_INT_MAX für aufsteigende und -1 für absteigende Zahlenfolgen. |
cycle | bool | - | no | Wenn eine Zahlenfolge ein Nummernkreis (cycle) ist und der Wert der Zahlenfolge eine Ober- oder Untergrenze erreicht, so wird diese zurückgesetzt auf den Minimalwert für eine aufsteigende, bzw. den Maximalwert für eine absteigende Zahlenfolge. |
Zahlenfolgen (Sequence) sind ganze Zahlen (Integer), in Verbindung mit einer Funktion zur Berechnung des Nachfolgers. Sie erfüllen verschiedene Aufgaben. Gewöhnlich werden sie verwendet, um eindeutige Id's automatisch zu generieren.
Beachten Sie, dass es implizite und explizite Zahlenfolgen gibt. Z.Bsp. wird implizit eine Zahlenfolge erzeugt, wenn eine Tabellenspalte mit der Eigenschaft Autoincrement angelegt wird. Implizite Zahlenfolgen dürfen nicht manuell definiert werden, da diese durch das DBMS selbst angelegt und verwaltet werden.
Beachten Sie auch, dass einige DBMS die Zahl 0 und den Wert NULL als gleich behandeln. Daher sollten Sie darauf achten, KEINE Zahlenfolge zu erzeugen, welche zu irgendeinem Zeitpunkt den Wert 0 annehmen kann. Außerdem können einige Anwendungen den Index 0 für Standardwerte reservieren (z.Bsp. ein Data-Warehouse).
Obwohl Zahlenfolgen Teil des SQL-2003 Standards sind, werden sie von den meisten Herstellern nicht unterstützt. Mit Ausnahme von PostgreSQL, wo diese ein bekanntes Feature darstellen. Sie können jedoch für andere DBMS simuliert werden.
ELEMENT initialization (#PCDATA) ATTRIBUTE dbms string
Attribut | Typ | Pflicht | Default | Beschreibung |
---|---|---|---|---|
dbms | string | - | generic | Der Name des Ziel-DBMS. Der Wert "generic" bedeutet, dass die Definition für jedes DBMS zutreffend ist. Gewöhnlich wird das als Rückfalloption für DBMS verwendet, an welche Sie entweder beim Erstellen der Datenbankstruktur noch nicht gedacht haben, oder welche das fragliche Feature nicht unterstützen. |
SQL-Anweisungen zum Initialisieren der Datenbank, welche ausgeführt werden sollen, direkt nachdem die Datenbankstruktur publiziert wurde. Die Syntax kann entweder allgemein gültig (generic) sein oder DBMS-spezifisch.
Die folgenden Werte werden für das DBMS-Attribut vorgeschlagen: 'generic', 'db2', 'dbase', 'frontbase', 'informix', 'interbase', 'msaccess', mssql,'' mysql,'' oracle,'' postgresql,'' sybase,'' sqlite'.
Thomas Meyer, www.yanaframework.net