Partager via


Schémas GDL

L’analyseur GDL vous permet de créer et d’implémenter un schéma piloté par les données. Lorsqu’un schéma est fourni, l’analyseur valide le schéma et convertit les données.

Un schéma décrit la structure et le format des données dans le fichier source GDL associé. Le schéma peut être défini dans le fichier de données source GDL lui-même ou il peut s’agir d’un fichier distinct auquel le fichier de données source GDL fait référence. Le schéma définit les entrées de données qui peuvent apparaître dans chaque construction et le nombre de fois où chaque attribut peut être défini. Par exemple, vous pouvez définir une construction pour décrire une personne. Vous souhaiterez peut-être que la construction inclue le nom, la date de naissance, la taille, le poids, l’adresse du domicile et certaines informations d’emploi de la personne.

Les données GDL peuvent ressembler à l’exemple de code suivant.

*Person: person_ID
{
  *Name:
  *Birthdate:
  *Height:
  *Weight:
  *HomeAddress:
  *EmploymentInfo:
} 

Étant donné que *HomeAddress et *EmploymentInfo représentent des regroupements logiques d’informations, ils peuvent également être définis comme des constructions, comme le montre l’exemple de code suivant.

*HomeAddress:
{
  *StreetAddress:
  *Apt_Number:
  *City:
  *State:
  *Zip:
}

*EmploymentInfo:
{
  *Employer:
  *Address:
  *Position:
  *Salary:
  *StartDate:
}

Les constructions GDL, telles que celles illustrées dans l’exemple précédent, ne définissent pas de règles de syntaxe pour leur structure et leur contenu. Par exemple, il peut y avoir deux instances de la construction *Person, l’une qui spécifie *Poids en kilogrammes et l’autre qui spécifie *Poids en livres. Ces instances multiples peuvent entraîner des incohérences.

Le schéma GDL fournit une méthode pour spécifier formellement la structure et le contenu auxquels les données entrantes doivent se conformer. L’analyseur valide les données par rapport à ce schéma et avertit si les données ou la structure des données ne sont pas conformes au schéma. Vous pouvez spécifier si les entrées sont obligatoires ou facultatives (comme Apt) ou si les entrées peuvent être multipliées. Par exemple, *Apt_Number peut être facultatif et une seule personne peut détenir deux travaux.

Le schéma permet de partager et d’hériter la définition des entrées. Par exemple, la définition de schéma pour *Address dans *EmploymentInfo peut être partagée par *HomeAddress. Le schéma permet de dériver de nouvelles définitions à partir de définitions existantes. Les deux constructions d’adresse n’ont pas besoin d’être identiques, car elles peuvent être des variantes dérivées d’une définition héritée commune.

Le schéma peut être utilisé pour spécifier le format d’une valeur d’attribut donnée. Par exemple, le schéma peut exiger que la valeur de date soit spécifiée au format MM-JJ-AAAA. L’analyseur peut également décomposer les expressions de valeurs complexes en leurs composants constitutifs et les afficher dans le instantané. Par exemple, votre application cliente peut souhaiter que la date soit décomposée en trois champs distincts, comme le montre l’exemple de code suivant.

*Date:
{
  *Month: Jan
  *Day: 1
  *Year: 2001
}

La capacité du schéma à prendre en charge l’héritage a des implications supplémentaires. L’héritage vous permet naturellement d’étendre le schéma tout en conservant la compatibilité. S’il existe un schéma dérivé d’un autre schéma, un fichier de données conforme au schéma dérivé est automatiquement également conforme au schéma d’origine. Cet héritage permet aux fournisseurs de personnaliser leur schéma (et, par conséquent, leurs fichiers de données) tout en conservant la compatibilité avec un schéma master (et toutes les applications qui nécessitent une conformité au schéma master). Dans la pratique, le fournisseur doit uniquement référencer le fichier qui définit le schéma master et créer de nouvelles définitions qui héritent des définitions du schéma master. Le fournisseur n’a pas besoin d’effectuer une copie privée du schéma master ou de modifier le schéma master d’aucune façon. Cette situation garantit que le fournisseur n’a pas besoin d’entreprendre d’action si le schéma master est modifié par la suite.

Comme le montre l’exemple précédent, l’héritage vous permet de factoriser les modèles courants et d’éviter la duplication inutile des définitions et la maintenance associée. Par conséquent, les schémas et les jeux de données qu’ils représentent peuvent être bien pensés et structurés logiquement.

Pour plus d’informations sur l’utilisation des schémas basés sur l’héritage, consultez Modèles GDL.