GDL-Schemas
Mit dem GDL-Parser können Sie ein datengesteuertes Schema erstellen und implementieren. Wenn ein Schema angegeben wird, überprüft der Parser das Schema und konvertiert die Daten.
Ein Schema beschreibt die Struktur und das Format der Daten in der zugehörigen GDL-Quelldatei. Das Schema kann in der GDL-Quelldatendatei selbst oder in einer separaten Datei definiert werden, auf die die GDL-Quelldatendatei verweist. Das Schema definiert die Dateneinträge, die in jedem Konstrukt angezeigt werden können, und die Häufigkeit, wie jedes Attribut definiert werden kann. Sie können beispielsweise ein Konstrukt definieren, um eine Person zu beschreiben. Möglicherweise soll das Konstrukt den Namen, das Geburtsdatum, die Größe, das Gewicht, die Wohnadresse und einige Beschäftigungsinformationen der Person enthalten.
Die GDL-Daten können etwa wie im folgenden Codebeispiel aussehen.
*Person: person_ID
{
*Name:
*Birthdate:
*Height:
*Weight:
*HomeAddress:
*EmploymentInfo:
}
Da *HomeAddress und *EmploymentInfo logische Gruppierungen von Informationen darstellen, können sie auch als Konstrukte definiert werden, wie das folgende Codebeispiel zeigt.
*HomeAddress:
{
*StreetAddress:
*Apt_Number:
*City:
*State:
*Zip:
}
*EmploymentInfo:
{
*Employer:
*Address:
*Position:
*Salary:
*StartDate:
}
GDL-Konstrukte, wie sie im vorherigen Beispiel gezeigt wurden, definieren keine Syntaxregeln für ihre Struktur und ihren Inhalt. Beispielsweise kann es zwei Instanzen des *Person-Konstrukts geben, eine, die *Gewicht in Kilogramm angibt, und die andere, die *Gewicht in Pfund angibt. Diese mehrere Instanzen können zu Inkonsistenzen führen.
Das GDL-Schema stellt eine Methode zum formalen Angeben der Struktur und des Inhalts bereit, mit denen die eingehenden Daten übereinstimmen müssen. Der Parser überprüft die Daten anhand dieses Schemas und warnt, wenn die Daten oder die Struktur der Daten nicht dem Schema entsprechen. Sie können angeben, ob Einträge erforderlich oder optional sind (z. B. Apt) oder ob Einträge multipliziert werden können. *Apt_Number kann beispielsweise optional sein, und eine einzelne Person kann zwei Aufträge besitzen.
Das Schema ermöglicht es, die Definition von Einträgen zu teilen und zu vererben. Beispielsweise kann die Schemadefinition für *Address in *EmploymentInfo von *HomeAddress freigegeben werden. Das Schema ermöglicht es, neue Definitionen aus vorhandenen Definitionen abzuleiten. Die beiden Address-Konstrukte müssen nicht identisch sein, da es sich um Varianten handeln kann, die von einer gemeinsamen geerbten Definition abgeleitet werden.
Das Schema kann verwendet werden, um das Format eines bestimmten Attributwerts anzugeben. Das Schema kann beispielsweise erfordern, dass der Datumswert im Format MM-TT-JJJJ angegeben wird. Sie können auch komplexe Wertausdrücke vom Parser in ihre bestandteile komponenten zerlegen und im Momentaufnahme anzeigen lassen. Beispielsweise kann ihre Clientanwendung das Datum in drei separate Felder zerlegen, wie das folgende Codebeispiel zeigt.
*Date:
{
*Month: Jan
*Day: 1
*Year: 2001
}
Die Fähigkeit des Schemas, die Vererbung zu unterstützen, hat zusätzliche Auswirkungen. Durch die Vererbung können Sie das Schema natürlich erweitern und gleichzeitig die Kompatibilität beibehalten. Wenn es ein Schema gibt, das von einem anderen Schema abgeleitet ist, entspricht eine Datendatei, die dem abgeleiteten Schema entspricht, automatisch auch dem ursprünglichen Schema. Diese Vererbung ermöglicht es Anbietern, ihr Schema (und implizit ihre Datendateien) anzupassen, wobei die Kompatibilität mit einem master Schema (und allen Anwendungen, die Konformität mit dem master Schema erfordern) beibehalten wird. In der Praxis darf der Anbieter nur auf die Datei verweisen, die das master Schema definiert, und neue Definitionen erstellen, die von den Definitionen im master Schema erben. Der Anbieter muss keine private Kopie des master Schemas erstellen oder das master Schema in irgendeiner Weise ändern. Dadurch wird sichergestellt, dass der Anbieter keine Maßnahmen ergreifen muss, wenn das master Schemas anschließend geändert wird.
Wie im vorherigen Beispiel veranschaulicht, ermöglicht Die Vererbung es Ihnen, gängige Muster zu berücksichtigen und unnötige Duplizierungen von Definitionen und die begleitende Wartung zu vermeiden. Daher können die Schemas und die Datasets, die sie darstellen, gut durchdacht und logisch strukturiert sein.
Weitere Informationen zur Verwendung vererbungsbasierter Schemas finden Sie unter GDL-Vorlagen.