GDL-Vorlagenqualifizierung
Eine Vorlage und alle Vorlagen, die direkt oder indirekt von dieser Vorlage abgeleitet sind, bilden eine Vererbungsstruktur oder Unterstruktur. Abgeleitete Vorlagen, die *Name-Konstrukte neu definiert haben, werden jedoch von dieser Struktur ausgeschlossen.
Wenn eine Vorlage in einer *Members-Liste benannt ist, betrachtet der GDL-Parser die benannte Vorlage und jede Vorlage, die von der benannten Vorlage abgeleitet wurde, als Kandidaten für die Zuordnung. Wenn mehr als eine Vorlage in dieser Vererbungsstruktur vorhanden ist, die qualifiziert ist, wählt der Parser die Vorlage aus, die am besten zu den Kriterien passt, die dem Dateneintrag zugeordnet werden sollen. Um als Vorlage zu qualifizieren, die einen bestimmten Dateneintrag darstellt, muss die Vorlage die folgenden Kriterien erfüllen:
Eine Vorlage, die als *Virtual deklariert ist, wird automatisch disqualifiziert. Alle abgeleiteten Vorlagen werden jedoch berücksichtigt.
Das *Name-Konstrukt der Vorlage muss mit dem Schlüsselwort (keyword) des Dateneintrags übereinstimmen. Beachten Sie, dass der *Name geerbt werden kann.
Wenn der Dateneintrag ein Konstrukt ist, muss ein Element in der *Instances-Liste der Vorlage mit dem instance Namen des Datenkonstrukts übereinstimmen. Außerdem muss jede Basisvorlage, von der die qualifizierende Vorlage erbt, diese Anforderung erfüllen. Nicht alle Vorlagen in einer Vererbungskette müssen über einen *Instances-Eintrag verfügen. Es wird davon ausgegangen, dass diejenigen, die nicht über diesen Eintrag verfügen, diese Anforderung standardmäßig erfüllt haben.
Wenn mehrere Vorlagen in einer Vererbungsstruktur qualifiziert sind, werden die folgenden zusätzlichen Kriterien berücksichtigt:
- Wenn eine Vorlage qualifiziert, indem jede Vorlage in ihrer Vererbungskette standardmäßig die Instance Namensanforderung erfüllt, oder wenn <> eine andere qualifizierende Vorlage eine oder mehrere Vorlagen in der Vererbungskette enthält, die instance Namensanforderung mit einer expliziten Übereinstimmung erfüllt, wird die Vorlage verwendet, die die explizite Übereinstimmung verwendet.
- Von den verbleibenden qualifizierten Vorlagen wird die am häufigsten abgeleitete Vorlage verwendet.
- Von den verbleibenden qualifizierten Vorlagen wird die zuletzt definierte Vorlage verwendet.