XML Definition und DLELocalMetaDataService

Die Klasse DLELocalMetaDataService implementiert den Metadatenservice und lädt die Metadateninformationen für ein Paket aus einer XML Datei.
Diese Datei liegt im Verzeichnis etc/packages der DLE und beginnt mit dem Paketnamen, gefolgt von der Konstante _DTA.xml.
Wird zum Beispiel ein Paket mit dem Namen DEMO definiert, heißt die Datei DEMO_DTA.xml.
Die Grundstruktur der XML Definition baut sich wie folgt auf:

<?xml version=’1.0’ ?>
<Package name=“DEMO“ part=“data“>
<MetaData>
<MetaDataObjects>
<!-- Datenobjektdefinition -->
</MetaDataObjects>
</MetaData>
<Variables>
<!-- Variablendefinition -->
</Variables>
<Aliases>
<!-- Aliasdefinition -->
</Aliases>
<VariableGroups>
<!-- Variablengruppendefinition -->
</VariableGroups>
</Package>

Nach der Kopfzeile folgt ein <Package> Block, der mit dem Attribut name=“DEMO“ den Paketnamen definiert und mit dem Attribut part=“data“ festlegt, daß es sich hierbei um die Metadatendefinition des Paketes DEMO handelt.
Die einzelnen Definitionsbereiche werden im folgenden mit Beispielen aus der XML Konfiguration näher erläutert, so daß auf die weiter tiefer liegende Syntax in diesem Abschnitt nicht weiter eingegangen wird.

Standardvorgaben in der XML Metadatendefinition

Die XML Definition hat die Möglichkeit für bestimmte Elemente Vorgaben zu definieren, so daß diese bei der Definition der einzelnen Elemente nicht zwingend erforderlich sind. Die Vorgaben können jedoch für einzelne Elemente jederzeit überschrieben werden.
Als Vorgaben können definiert werden:

  • Der Connector
  • Die Datenlokalisierung
  • Die Automatische Numerierung
  • Trimmen von Leerzeichen
  • Leere Werte erlaubt

Welche Bedeutung die einzelnen Vorgaben haben, wird im Detail bei den betreffenden Elementen beschrieben.
Die Definition der Vorgaben erfolgt im <MetaDataObjects> Block durch Attribute:

<MetaDataObjects
defaultConnector=“defaultConnector“
defaultAutoNumber=“True“
defaultDataLocalization=“DLEDataLocalization“
defaultTrim=“False“
defaultAllowedEmpty=“False“>

Aus der Grundstruktur der XML Definition ist ersichtlich, daß die Metadaten eines Paketes aus vier grundlegenden Elementen bestehen:

  • Datenobjektdefinition
  • Variablendefinition
  • Aliasdefinition
  • Variablengruppendefinition

Diese werden im folgenden im Detail beschrieben.

Syntaxprüfung mit XML-Schema

Im Verzeichnis etc/packages befindet sich eine XML Schema Definition für die Metadaten. Die Datei heißt DATA.xsd und kann in eine bestehende Metadatendefinition eingebunden werden, indem für das Wurzelelement <Package> folgende Attribute definiert werden:

<Package
name = “DEMO“
part = “data“
xmlns:xsi = “http://www.w3.org/2001/XMLSchema-instance“
xsi:noNamespaceSchemaLocation =“DATA.xsd“>

Die DLE überprüft jedoch aus Performancegründen die Syntax nicht automatisch bei jedem Laden der Metadaten.
Es gibt jedoch ein Hilfsprogramm, das diese Überprüfung durchführt, indem es eine XML Datei mit Hilfe eines XML Schema fähigen XML Parsers einliest und mögliche Syntaxfehler ausgibt.
Die Klasse at.visionflow.dle.engine.metadata.DLEMetaDataValidator hat eine statische validate() Methode, die als Parameter den Dateinamen der zu prüfenden Datei erwartet.
Zusätzlich hat diese Klasse auch eine main() Methode. Auch hier muß der Dateiname als Parameter übergeben werden.
Der Aufruf kann von der Kommandozeile wie folgt erfolgen:

java –cp “xerces.jar;jdom.jar;dle.jar“ at.visionflow.dle.engine.metadata.DLEMetaDataValidator DEMO_DTA.xml