Download als PDF

Erweiterung des Datenmodells und Datenkonsistenz

Version 1 von Daniel Neumann

Voraussetzungen

Für diese Tutorials werden keine weiteren Voraussetzungen als für die vorhergehenden Tutorials benötigt. 

Beschreibung

Im ersten Tutorial erfahren Sie, wie Sie ein vorhandenes Datenmodell erweitern können. Dies machen wir am Beispiel der zuvor erstellen Zitatverwaltung. Passend dazu erklärt das zweite Tutorial die Datenkonsistenz in onion.net.

Erweiterung des Datenmodells

Erweiterung des Datenmodells (video/mpeg)

Wir wollen das Schema für ein Zitat um die Angabe einer Quelle erweitern. Dazu erweitern wir das Schema zunächst um ein optionales Element.

Dazu wählen Sie in der Schemaverwaltung das Schema „quotation“ aus. Erweitern Sie die <xs:sequence> um ein weiteres Element:

<xs:element name="origin" type="xs:string" minOccurs="0" />

Jetzt ergänzen wir die bestehenden Zitate um die fehlenden Daten.

Wählen Sie in der Detailansicht Ihre Zitate aus. Leihen Sie sie aus und geben Sie die Quelle der Zitate ein, z.B. „zitate.net“ und geben Sie sie anschließend zurück.

Jetzt können wir das Attribut „minOccurs“ entfernen. Damit ist die Quellenangabe für zukünftige Zitate zwingend.

Wechseln Sie zurück in das Schema „quotation“ und löschen Sie das Attribut minOccurs aus dem xs:element.

Dank der erweiterbaren Datentypen können Sie onion.net-Projekte immer wieder an neue Anforderungen anpassen.

Datenkonsistenz

Datenkonsistenz (video/mpeg)

Fügen Sie im Schema nun ein neues, nicht-optionales Element „date“ hinzu:

<xs:element name="date" type="xs:dateTime" />

Das Speichern dieser Schemaerweiterung ist nicht möglich, da die vorhandenen Objekte von diesem Typ dann ungültig wären. Tatsächlich ergibt ein Klick auf den Speichern-Button folgenden Hinweis:


Indem wir das Element optional konfigurieren, bleiben die vorhandenen Objekte valide.

Fügen Sie das Attribut „minOccurs='0''“ an das Element „date“ und speichern Sie das Schema erneut.

Die konsequente Validierung der Daten durch die definierten Schemata macht es unmöglich, ungültige Inhalte zu erzeugen.