Freigeben über


GDL-Architektur

In diesem Thema wird die Architektur der GDL (Generic Descriptor Language) beschrieben.

Für jedes GDL-Dataset sollten Sie ein GDL-Schema definieren, um das Format der Daten zu beschreiben. Jede Datei, die ein Dataset enthält, verweist auf das GDL-Schema. Dieses Schema ermöglicht es dem GDL-Parser, zu überprüfen, ob das Dataset dem Schema entspricht, und alle angegebenen Transformationen auszuführen, wenn die Momentaufnahme erstellt wird. Für alle Daten, die in der GPD definiert sind, hat Microsoft ein Standardschema bereitgestellt. Darüber hinaus können Sie mit dem Parser einige Daten als konfigurierbar definieren. Andere Daten können so beschrieben werden, dass sie von der verwendeten Konfiguration abhängig sind.

Die Spezifikation kann in ein GDL-Schema konvertiert werden. Jede Datei, die ein Dataset enthält, verweist auf das GDL-Schema. Dieses Schema ermöglicht es dem GDL-Parser, zu überprüfen, ob das Dataset dem Schema entspricht, und alle angegebenen Transformationen auszuführen, wenn die Momentaufnahme erstellt wird.

Nachdem die Datasets und das Schema definiert wurden, kann der Client mehrere Ansichten oder Momentaufnahmen aus einem einzelnen Dataset erstellen, indem verschiedene Konfigurationen angegeben werden. Für Unidrv-Konfigurations- und Rendering-Plug-Ins kann der Client über die Methoden in der IPrintCoreHelperUni-Schnittstelle auf die Momentaufnahme zugreifen. Der GDL-Parser lädt das im Dataset angegebene Schema und überprüft, ob das Dataset seinem Schema entspricht. Wenn das Dataset nicht konform ist, weist der Parser auf einen Fehler beim Analysieren der Datei hin.

Nachdem die Datasets und das Schema definiert wurden, kann der Client Momentaufnahmen eines Datasets erstellen, indem er eine Konfiguration angibt:

  1. Das Plug-In ruft über die IPrintOemUI::P ublishDriverInterface-Methode einen Zeiger auf die IPrintCoreHelperUni-Schnittstelle ab.

  2. Das Plug-In fordert den Zugriff auf die Momentaufnahme über einen Aufruf von IPrintCoreHelperUni::CreateGDLSnapshot oder IPrintCoreHelperUni::CreateDefaultGDLSnapshot an. Wenn das Plug-In CreateGDLSnapshot aufruft, stellt der Aufrufer eine DEVMODE-Struktur bereit, die die Konfiguration enthält, die der Parser verwendet, um die Ansicht der Momentaufnahme zu bestimmen.

  3. Der GDL-Parser lädt das im Dataset angegebene Schema und überprüft, ob das Dataset seinem Schema entspricht. Wenn das Dataset nicht konform ist, werden Fehlermeldungen ausgegeben.

  4. Der GDL-Parser erstellt eine interne Datenstruktur aus der GDL-Quelldatei und bestimmt die entsprechende Sicht basierend auf der bereitgestellten Konfiguration und Verarbeitungsanweisungen im Schema.

  5. Der Parser erstellt eine XML-Darstellung (die Momentaufnahme) der verarbeiteten Dateneinträge. Diese XML-Momentaufnahme wird als Stream an das Plug-In zurückgegeben.

Wenn ein Schema ausgelassen wird, führt der Parser einfach die Schemaüberprüfung durch, und die Momentaufnahme Werte werden im Momentaufnahme als Zeichenfolge von Bytes dargestellt, die ursprünglich in der GDL-Quelldatei definiert wurden.

Hinweis Die PublishDriverInterface-Methode ist Teil der IPrintOemUni-Schnittstelle und anderer Schnittstellen. Ein Plug-In erhält also nicht unbedingt die Hilfsschnittstelle von IPrintOemUI::P ublishDriverInterface. Die Hilfsschnittstelle kann von IPrintOemUni::P ublishDriverInterface oder an einer anderen Stelle abgerufen werden, je nachdem, welche Art der Schnittstelle das Plug-In implementiert.