Unter einem Datenobjekt wird ein Objekt verstanden, das Daten in Form von Attributen enthält. Die Datenobjektdefinition legt unter anderem fest welche Attribute zu einem Datenobjekt gehören können, welche Datentypen diese haben, wie ein Objekt identifiziert werden kann, welche Verbindungen zu anderen Datenobjekten bestehen und wie auf die Daten zugegriffen werden kann. In einer relationalen Datenbank ist ein Datenobjekt als Tabelle zu sehen.
Ein Datenobjekt wird durch folgende Elemente beschrieben. In Klammern sind die Analogien einer relationalen Datenbank angegeben:
- Objektname (Tabellenname)
- Attribute (Spalten)
- Objektschlüssel (Primärschlüssel)
- Assoziationen (Fremdschlüssel)
- Zusätzliche Abfragebedingung (SQL WHERE)
- Abfragekommando (SQL SELECT)
- Nachschlagedefinition (für die Suche von Werten)
- Vordefinierte Daten (Tabellenzeilen)
Zusätzlich besteht die Möglichkeit, benannte Datenobjekte zu definieren. Dies sind schon definierte Datenobjekte, die zusätzlich unter anderem Namen nochmals definiert sind.
Dabei sind der Objektname, die Attribute und der Objektschlüssel Pflichtangaben. Alle anderen Angaben sind optional und dienen der flexiblen Anpassung an bestehende Applikationsanforderungen.
Innerhalb der XML Definition wird die Grundstruktur eines Datenobjektes innerhalb des MetaDataObjects Blocks wie folgt definiert:
<MetaDataObject
name=“Objektname“
connector=“connectorName“
dataLocalization=“dataLocalizationName“
hidden=“False“
readOnly="False">
<MetaAttributes>
<!-- Attributdefinition -->
</MetaAttributes>
<Select>
<!-- Spaltenliste für Datenbank-Select (optional) -->
</Select>
<FromSelect>
<!-- Tabellenliste für Datenbank-Select (optional) -->
</FromSelect>
<AdditionalWhereClause>
<!-- Where-Ausdruck für Datenbankzugriffe (optional)-->
</AdditionalWhereClause>
<GroupBy>
<!-- Group By-Ausdruck für Datenbank-Select (optional) -->
</GroupBy>
<QueryString>
<!-- SQL-Ausdruck Select .... FROM ... WHERE... (optionale alte Variante für SQL>-->
<!--QueryString>
<MetaObjectIdentifier>
<!-- Objektschlüsseldefinition -->
</MetaObjectIdentifier>
<MetaDataObject>
