Partager via


GDL Architecture

Cette rubrique décrit l’architecture du langage de descripteur générique (GDL).

Pour chaque jeu de données GDL, vous devez définir un schéma GDL pour décrire le format des données. Chaque fichier qui contient un jeu de données fait référence au schéma GDL. Ce schéma permet à l’analyseur GDL de vérifier que le jeu de données est conforme au schéma et d’effectuer les transformations spécifiées lorsque le instantané est construit. Pour toutes les données définies dans le GPD, Microsoft a fourni un schéma standard. En outre, l’analyseur vous permet de définir certaines données comme configurables. D’autres données peuvent être décrites de manière à ce qu’elles dépendent de la configuration utilisée.

La spécification peut être convertie en schéma GDL. Chaque fichier qui contient un jeu de données fait référence au schéma GDL. Ce schéma permet à l’analyseur GDL de vérifier que le jeu de données est conforme au schéma et d’effectuer les transformations spécifiées lorsque le instantané est construit.

Une fois les jeux de données et le schéma définis, le client peut créer plusieurs vues ou instantanés à partir d’un même jeu de données en spécifiant différentes configurations. Pour les plug-ins de configuration et de rendu Unidrv, le client peut accéder aux instantané via les méthodes de l’interface IPrintCoreHelperUni. L’analyseur GDL charge le schéma spécifié dans le jeu de données et vérifie que le jeu de données est conforme à son schéma. Si le jeu de données n’est pas conforme, l’analyseur indique l’échec de l’analyse du fichier.

Une fois les jeux de données et le schéma définis, le client peut créer des instantanés d’un jeu de données en spécifiant une configuration :

  1. Le plug-in obtient un pointeur vers l’interface IPrintCoreHelperUni via la méthode IPrintOemUI::P ublishDriverInterface .

  2. Le plug-in demande l’accès au instantané via un appel à IPrintCoreHelperUni::CreateGDLSnapshot ou IPrintCoreHelperUni::CreateDefaultGDLSnapshot. Si le plug-in appelle CreateGDLSnapshot, l’appelant fournit une structure DEVMODE qui inclut la configuration que l’analyseur utilise pour déterminer l’affichage des instantané.

  3. L’analyseur GDL charge le schéma spécifié dans le jeu de données et vérifie que le jeu de données est conforme à son schéma. Si le jeu de données n’est pas conforme, des messages d’erreur sont émis.

  4. L’analyseur GDL crée une structure de données interne à partir du fichier source GDL et détermine la vue appropriée en fonction de la configuration fournie et des instructions de traitement dans le schéma.

  5. L’analyseur crée une représentation XML (instantané) des entrées de données traitées. Cette instantané XML est retournée au plug-in sous forme de flux..

Si un schéma est omis, l’analyseur effectue simplement la validation du schéma et les valeurs instantané sont représentées dans le instantané en tant que chaîne d’octets initialement définis dans le fichier source GDL.

Note La méthode PublishDriverInterface fait partie de l’interface IPrintOemUni et d’autres interfaces. Ainsi, un plug-in n’obtient pas nécessairement l’interface d’assistance de IPrintOemUI::P ublishDriverInterface. Il peut obtenir l’interface d’assistance à partir de IPrintOemUni::P ublishDriverInterface ou ailleurs en fonction du type d’interface implémenté par le plug-in.