Compartir a través de


Arquitectura de GDL

En este tema se describe la arquitectura del lenguaje de descriptor genérico (GDL).

Para cada conjunto de datos GDL, debe definir un esquema GDL para describir el formato de los datos. Cada archivo que contiene un conjunto de datos hace referencia al esquema GDL. Este esquema permite al analizador de GDL comprobar que el conjunto de datos se ajusta al esquema y realizar las transformaciones especificadas cuando se construye la instantánea. Para todos los datos definidos en el GPD, Microsoft ha proporcionado un esquema estándar. Además, el analizador le permite definir algunos datos como configurables. Otros datos se pueden describir de una manera que hace que dependa de la configuración que se usa.

La especificación se puede convertir en un esquema GDL. Cada archivo que contiene un conjunto de datos hace referencia al esquema GDL. Este esquema permite al analizador de GDL comprobar que el conjunto de datos se ajusta al esquema y realizar las transformaciones especificadas cuando se construye la instantánea.

Una vez definidos los conjuntos de datos y el esquema, el cliente puede crear varias vistas o instantáneas a partir de un único conjunto de datos especificando configuraciones diferentes. En el caso de los complementos de representación y configuración unidrv, el cliente puede acceder a la instantánea a través de los métodos de la interfaz IPrintCoreHelperUni . El analizador de GDL cargará el esquema especificado en el conjunto de datos y comprobará que el conjunto de datos se ajusta a su esquema. Si el conjunto de datos no se ajusta, el analizador indicará un error al analizar el archivo.

Una vez definidos los conjuntos de datos y el esquema, el cliente puede crear instantáneas de un conjunto de datos especificando una configuración:

  1. El complemento obtiene un puntero a la interfaz IPrintCoreHelperUni a través del método IPrintOemUI::P ublishDriverInterface .

  2. El complemento solicita acceso a la instantánea a través de una llamada a IPrintCoreHelperUni::CreateGDLSnapshot o IPrintCoreHelperUni::CreateDefaultGDLSnapshot. Si el complemento llama a CreateGDLSnapshot, el autor de la llamada proporciona una estructura DEVMODE que incluye la configuración que usa el analizador para determinar la vista de la instantánea.

  3. El analizador GDL carga el esquema especificado en el conjunto de datos y comprueba que el conjunto de datos se ajusta a su esquema. Si el conjunto de datos no se ajusta, se emitirán mensajes de error.

  4. El analizador de GDL crea una estructura de datos interna a partir del archivo de origen de GDL y determina la vista adecuada en función de la configuración proporcionada y las instrucciones de procesamiento en el esquema.

  5. El analizador crea una representación XML (la instantánea) de las entradas de datos procesadas. Esta instantánea XML se devuelve al complemento como una secuencia.

Si se omite un esquema, el analizador simplemente realizará la validación del esquema y los valores de instantánea se representarán en la instantánea como la cadena de bytes que se definieron originalmente en el archivo de origen de GDL.

Nota El método PublishDriverInterface forma parte de la interfaz IPrintOemUni y de otras interfaces. Por lo tanto, un complemento no necesariamente obtiene la interfaz auxiliar de IPrintOemUI::P ublishDriverInterface. Puede obtener la interfaz auxiliar de IPrintOemUni::P ublishDriverInterface o en cualquier otro lugar en función del tipo de interfaz que implemente el complemento.