Qualification de modèle GDL
Un modèle et tous les modèles dérivés directement ou indirectement de ce modèle forment une arborescence ou une sous-arborescence d’héritage. Toutefois, les modèles dérivés qui ont redéfini *Constructions de nom sont exclus de cette arborescence.
Lorsqu’un modèle est nommé dans une liste *Membres, l’analyseur GDL considère le modèle nommé et chaque modèle dérivé du modèle nommé comme candidat à l’association. Si plusieurs modèles de cette arborescence d’héritage sont qualifiés, l’analyseur sélectionne le modèle qui correspond le mieux aux critères à associer à l’entrée de données. Pour être considéré comme le modèle qui représentera une entrée de données donnée, le modèle doit répondre aux critères suivants :
Un modèle déclaré comme *Virtuel est automatiquement disqualifié. Toutefois, tous les modèles dérivés sont pris en compte.
La construction *Name du modèle doit correspondre à la mot clé de l’entrée de données. Notez que le *Nom peut être hérité.
Si l’entrée de données est une construction, un élément de la liste *Instances du modèle doit correspondre au nom instance de la construction de données. En outre, chaque modèle de base dont hérite le modèle éligible doit également satisfaire à cette exigence. Tous les modèles d’une chaîne d’héritage ne doivent pas avoir une entrée *Instances ; ceux qui n’ont pas cette entrée sont supposés avoir satisfait à cette exigence par défaut.
Si plusieurs modèles d’une arborescence d’héritage sont qualifiés, les critères supplémentaires suivants sont pris en compte :
- Si un modèle est éligible en obligeant chaque modèle de sa chaîne d’héritage à satisfaire l’exigence de nom de instance par défaut ou en utilisant le caractère générique <ANY> et si un autre modèle éligible a un ou plusieurs modèles dans sa chaîne d’héritage satisfait à l’exigence de nom de instance avec une correspondance explicite, le modèle qui utilise la correspondance explicite est utilisé.
- Parmi les modèles éligibles restants, le modèle le plus dérivé sera utilisé.
- Parmi les autres modèles éligibles, le modèle le plus récemment défini sera utilisé.